]> git.baikalelectronics.ru Git - kernel.git/commit
arm64: entry: Move the trampoline data page before the text page
authorJames Morse <james.morse@arm.com>
Tue, 23 Nov 2021 15:43:31 +0000 (15:43 +0000)
committerJames Morse <james.morse@arm.com>
Tue, 15 Feb 2022 17:39:14 +0000 (17:39 +0000)
commit728340a710076cab649423b85bf3735025e834f9
treee3d6f3a0ed2f921d6365ef879a5c59158344d7be
parentc388d8624533dc38ea180fba81a706b70bff0fb0
arm64: entry: Move the trampoline data page before the text page

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: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: James Morse <james.morse@arm.com>
arch/arm64/include/asm/fixmap.h
arch/arm64/kernel/entry.S