• Russell King's avatar
    ARM: smp: remove arch-provided "pen_release" · 6213f70e
    Russell King authored
    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: default avatarRussell King <rmk+kernel@armlinux.org.uk>
    6213f70e
platsmp.c 2.97 KB