OpenCloudOS-Kernel/arch/arm/mach-spear
Russell King 6213f70e7c ARM: smp: remove arch-provided "pen_release"
Consolidating the "pen_release" stuff amongst the various SoC
implementations gives credence to having a CPU holding pen for
secondary CPUs.  However, this is far from the truth.

Many SoC implementations cargo-cult copied various bits of the pen
release implementation from the initial Realview/Versatile Express
implementation without understanding what it was or why it existed.
The reason it existed is because these are _development_ platforms,
and some board firmware is unable to individually control the
startup of secondary CPUs.  Moreover, they do not have a way to
power down or reset secondary CPUs for hot-unplug.  Hence, the
pen_release implementation was designed for ARM Ltd's development
platforms to provide a working implementation, even though it is
very far from what is required.

It was decided a while back to reduce the duplication by consolidating
the "pen_release" variable, but this only made the situation worse -
we have ended up with several implementations that read this variable
but do not write it - again, showing the cargo-cult mentality at work,
lack of proper review of new code, and in some cases a lack of testing.

While it would be preferable to remove pen_release entirely from the
kernel, this is not possible without help from the SoC maintainers,
which seems to be lacking.  However, I want to remove pen_release from
arch code to remove the credence that having it gives.

This patch removes pen_release from the arch code entirely, adding
private per-SoC definitions for it instead, and explicitly stating
that write_pen_release() is cargo-cult copied and should not be
copied any further.  Rename write_pen_release() in a similar fashion
as well.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2019-02-01 22:05:23 +00:00
..
include/mach Update Viresh Kumar's email address 2015-07-17 16:39:53 -07:00
Kconfig ARM: stop *MIGHT_HAVE_PCI* config from being selected redundantly 2016-09-21 22:45:05 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
generic.h ARM: smp: remove arch-provided "pen_release" 2019-02-01 22:05:23 +00:00
headsmp.S ARM: smp: remove arch-provided "pen_release" 2019-02-01 22:05:23 +00:00
hotplug.c ARM: smp: remove arch-provided "pen_release" 2019-02-01 22:05:23 +00:00
pl080.c Update Viresh Kumar's email address 2015-07-17 16:39:53 -07:00
pl080.h Update Viresh Kumar's email address 2015-07-17 16:39:53 -07:00
platsmp.c ARM: smp: remove arch-provided "pen_release" 2019-02-01 22:05:23 +00:00
restart.c Update Viresh Kumar's email address 2015-07-17 16:39:53 -07:00
spear3xx.c ARM/dmaengine: pl08x: pass reasonable memcpy settings 2017-05-24 09:44:32 +05:30
spear6xx.c ARM/dmaengine: pl08x: pass reasonable memcpy settings 2017-05-24 09:44:32 +05:30
spear13xx.c clocksource/drivers: Rename clocksource_probe to timer_probe 2017-06-14 11:59:16 +02:00
spear300.c arm: use of_platform_default_populate() to populate 2016-06-23 15:00:39 -05:00
spear310.c arm: use of_platform_default_populate() to populate 2016-06-23 15:00:39 -05:00
spear320.c arm: use of_platform_default_populate() to populate 2016-06-23 15:00:39 -05:00
spear1310.c arm: Remove unnecessary of_platform_populate with default match table 2016-06-23 14:58:37 -05:00
spear1340.c arm: Remove unnecessary of_platform_populate with default match table 2016-06-23 14:58:37 -05:00
time.c ARM: remove duplicate 'const' annotations' 2017-05-19 10:12:55 +02:00