• Nikolay Borisov's avatar
    ARM: kexec: Make .text R/W in machine_kexec · 42d720d1
    Nikolay Borisov authored
    With the introduction of Kees Cook's patch to make the kernel .text
    read-only the existing method by which kexec works got broken since it
    directly pokes some values in the template code, which resides in the
    .text section.
    
    The current patch changes the way those values are inserted so that poking
    .text section occurs only in machine_kexec (e.g when we are about to nuke
    the old kernel and are beyond the point of return). This allows to use
    set_kernel_text_rw() to directly patch the values in the .text section.
    
    I had already sent a patch which achieved this but it was significantly
    more complicated, so this is a cleaner/straight-forward approach.
    Signed-off-by: default avatarNikolay Borisov <Nikolay.Borisov@arm.com>
    Acked-by: default avatarWill Deacon <will.deacon@arm.com>
    [kees: collapsed kexec_boot_atags (will.daecon)]
    [kees: for bisectability, moved set_kernel_text_rw() to RODATA patch]
    Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    Acked-by: default avatarNicolas Pitre <nico@linaro.org>
    42d720d1
machine_kexec.c 4.9 KB