• Ard Biesheuvel's avatar
    ARM: percpu: add SMP_ON_UP support · 7b9896c3
    Ard Biesheuvel authored
    Permit the use of the TPIDRPRW system register for carrying the per-CPU
    offset in generic SMP configurations that also target non-SMP capable
    ARMv6 cores. This uses the SMP_ON_UP code patching framework to turn all
    TPIDRPRW accesses into reads/writes of entry #0 in the __per_cpu_offset
    array.
    
    While at it, switch over some existing direct TPIDRPRW accesses in asm
    code to invocations of a new helper that is patched in the same way when
    necessary.
    
    Note that CPU_V6+SMP without SMP_ON_UP results in a kernel that does not
    boot on v6 CPUs without SMP extensions, so add this dependency to
    Kconfig as well.
    Acked-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Acked-by: default avatarNicolas Pitre <nico@fluxnic.net>
    Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    Tested-by: default avatarMarc Zyngier <maz@kernel.org>
    Tested-by: Vladimir Murzin <vladimir.murzin@arm.com> # ARMv7M
    7b9896c3
sleep.S 5.17 KB