• Geert Uytterhoeven's avatar
    ARM: shmobile: Move shmobile_smp_{mpidr, fn, arg}[] from .text to .bss · 4e960f52
    Geert Uytterhoeven authored
    If CONFIG_DEBUG_RODATA=y, the kernel crashes during system suspend:
    
        Freezing user space processes ... (elapsed 0.004 seconds) done.
        Freezing remaining freezable tasks ... (elapsed 0.002 seconds)
        done.
        PM: suspend of devices complete after 111.948 msecs
        PM: late suspend of devices complete after 1.086 msecs
        PM: noirq suspend of devices complete after 11.576 msecs
        Disabling non-boot CPUs ...
        Kernel panic - not syncing: Attempted to kill the idle task!
        1014ec ---[ end Kernel panic - not syncing: Attempted to kill the idle task!
        CPU0: stopping
    
    This happens because the .text section is marked read-only, while the
    arrays shmobile_smp_mpidr[], shmobile_smp_fn[], and shmobile_smp_arg[]
    are being written to.
    
    Fix this by moving these arrays from the .text to the .bss section.
    This requires accessing them through PC-relative offsets.
    Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: default avatarKees Cook <keescook@chromium.org>
    Reviewed-by: default avatarNicolas Pitre <nico@linaro.org>
    Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
    4e960f52
headsmp.S 2.12 KB