• Michael Ellerman's avatar
    powerpc/mm: Mark __init memory no-execute when STRICT_KERNEL_RWX=y · 029d9252
    Michael Ellerman authored
    Currently even with STRICT_KERNEL_RWX we leave the __init text marked
    executable after init, which is bad.
    
    Add a hook to mark it NX (no-execute) before we free it, and implement
    it for radix and hash.
    
    Note that we use __init_end as the end address, not _einittext,
    because overlaps_kernel_text() uses __init_end, because there are
    additional executable sections other than .init.text between
    __init_begin and __init_end.
    
    Tested on radix and hash with:
    
      0:mon> p $__init_begin
      *** 400 exception occurred
    
    Fixes: 1e0fc9d1 ("powerpc/Kconfig: Enable STRICT_KERNEL_RWX for some configs")
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    029d9252
pgtable-radix.c 21.2 KB