Commit 751c263b authored by Ard Biesheuvel's avatar Ard Biesheuvel Committed by Will Deacon
Browse files

arm64: remove TEXT_OFFSET randomization



TEXT_OFFSET was recently changed to 0x0, in preparation for its removal
at a later stage, and a warning is emitted into the kernel log when the
bootloader appears to have failed to take the TEXT_OFFSET image header
value into account.

Ironically, this warning itself fails to take TEXT_OFFSET into account,
and compares the kernel image's alignment modulo 2M against a hardcoded
value of 0x0, and so the warning will trigger spuriously when TEXT_OFFSET
randomization is enabled.

Given the intent to get rid of TEXT_OFFSET entirely, let's fix this
oversight by just removing support for TEXT_OFFSET randomization.

Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/20200615101939.634391-1-ardb@kernel.org


Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent b3a9e3b9
Loading
Loading
Loading
Loading
+0 −15
Original line number Diff line number Diff line
@@ -8,21 +8,6 @@ config PID_IN_CONTEXTIDR
	  instructions during context switch. Say Y here only if you are
	  planning to use hardware trace tools with this kernel.

config ARM64_RANDOMIZE_TEXT_OFFSET
	bool "Randomize TEXT_OFFSET at build time"
	help
	  Say Y here if you want the image load offset (AKA TEXT_OFFSET)
	  of the kernel to be randomized at build-time. When selected,
	  this option will cause TEXT_OFFSET to be randomized upon any
	  build of the kernel, and the offset will be reflected in the
	  text_offset field of the resulting Image. This can be used to
	  fuzz-test bootloaders which respect text_offset.

	  This option is intended for bootloader and/or kernel testing
	  only. Bootloaders must make no assumptions regarding the value
	  of TEXT_OFFSET and platforms must not require a specific
	  value.

config DEBUG_EFI
	depends on EFI && DEBUG_INFO
	bool "UEFI debugging"
+0 −6
Original line number Diff line number Diff line
@@ -121,13 +121,7 @@ endif
head-y		:= arch/arm64/kernel/head.o

# The byte offset of the kernel image in RAM from the start of RAM.
ifeq ($(CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET), y)
TEXT_OFFSET := $(shell awk "BEGIN {srand(); printf \"0x%06x\n\", \
		 int(2 * 1024 * 1024 / (2 ^ $(CONFIG_ARM64_PAGE_SHIFT)) * \
		 rand()) * (2 ^ $(CONFIG_ARM64_PAGE_SHIFT))}")
else
TEXT_OFFSET := 0x0
endif

ifeq ($(CONFIG_KASAN_SW_TAGS), y)
KASAN_SHADOW_SCALE_SHIFT := 4