• James Morse's avatar
    arm64: entry: Move the trampoline data page before the text page · c091fb6a
    James Morse authored
    The trampoline code has a data page that holds the address of the vectors,
    which is unmapped when running in user-space. This ensures that with
    CONFIG_RANDOMIZE_BASE, the randomised address of the kernel can't be
    discovered until after the kernel has been mapped.
    
    If the trampoline text page is extended to include multiple sets of
    vectors, it will be larger than a single page, making it tricky to
    find the data page without knowing the size of the trampoline text
    pages, which will vary with PAGE_SIZE.
    
    Move the data page to appear before the text page. This allows the
    data page to be found without knowing the size of the trampoline text
    pages. 'tramp_vectors' is used to refer to the beginning of the
    .entry.tramp.text section, do that explicitly.
    Reviewed-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
    Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: default avatarJames Morse <james.morse@arm.com>
    c091fb6a
fixmap.h 2.98 KB