]> git.baikalelectronics.ru Git - kernel.git/commit
arm64: warn on incorrect placement of the kernel by the bootloader
authorArd Biesheuvel <ardb@kernel.org>
Thu, 11 Jun 2020 12:43:30 +0000 (14:43 +0200)
committerWill Deacon <will@kernel.org>
Thu, 11 Jun 2020 13:13:13 +0000 (14:13 +0100)
commitbbdfe9f461269e8c8528a3e3e684f7d27fc4b981
tree8b0551131f609fcd3ccfa232e49d05f3983510a8
parent7ecf88b17697c791bf936148c41e0c63529d4145
arm64: warn on incorrect placement of the kernel by the bootloader

Commit 37df1ad9dcc1ce ("arm64: set TEXT_OFFSET to 0x0 in preparation for
removing it entirely") results in boot failures when booting kernels that
are built without KASLR support on broken bootloaders that ignore the
TEXT_OFFSET value passed via the header, and use the default of 0x80000
instead.

To work around this, turn CONFIG_RELOCATABLE on by default, even if KASLR
itself (CONFIG_RANDOMIZE_BASE) is turned off, and require CONFIG_EXPERT
to be enabled to deviate from this. Then, emit a warning into the kernel
log if we are not booting via the EFI stub (which is permitted to deviate
from the placement restrictions) and the kernel base address is not placed
according to the rules as laid out in Documentation/arm64/booting.rst.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20200611124330.252163-1-ardb@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/Kconfig
arch/arm64/kernel/setup.c