• Balbir Singh's avatar
    powerpc/mm/radix: Implement STRICT_RWX/mark_rodata_ro() for Radix · 7614ff32
    Balbir Singh authored
    The Radix linear mapping code (create_physical_mapping()) tries to use
    the largest page size it can at each step. Currently the only reason
    it steps down to a smaller page size is if the start addr is
    unaligned (never happens in practice), or the end of memory is not
    aligned to a huge page boundary.
    
    To support STRICT_RWX we need to break the mapping at __init_begin,
    so that the text and rodata prior to that can be marked R_X and the
    regular pages after can be marked RW.
    
    Having done that we can now implement mark_rodata_ro() for Radix,
    knowing that we won't need to split any mappings.
    Signed-off-by: default avatarBalbir Singh <bsingharora@gmail.com>
    [mpe: Split down to PAGE_SIZE, not 2MB, rewrite change log]
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    7614ff32
pgtable_64.c 12.4 KB