2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-13 16:14:26 +08:00
linux-next/arch/arm64
Sami Tolvanen dbaee836d6 KVM: arm64: Don't use cbz/adr with external symbols
allmodconfig + CONFIG_LTO_CLANG_THIN=y fails to build due to following
linker errors:

  ld.lld: error: irqbypass.c:(function __guest_enter: .text+0x21CC):
  relocation R_AARCH64_CONDBR19 out of range: 2031220 is not in
  [-1048576, 1048575]; references hyp_panic
  >>> defined in vmlinux.o

  ld.lld: error: irqbypass.c:(function __guest_enter: .text+0x21E0):
  relocation R_AARCH64_ADR_PREL_LO21 out of range: 2031200 is not in
  [-1048576, 1048575]; references hyp_panic
  >>> defined in vmlinux.o

This is because with LTO, the compiler ends up placing hyp_panic()
more than 1MB away from __guest_enter(). Use an unconditional branch
and adr_l instead to fix the issue.

Link: https://github.com/ClangBuiltLinux/linux/issues/1317
Reported-by: Nathan Chancellor <nathan@kernel.org>
Suggested-by: Marc Zyngier <maz@kernel.org>
Suggested-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Acked-by: Will Deacon <will@kernel.org>
Tested-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20210305202124.3768527-1-samitolvanen@google.com
2021-03-09 08:48:24 +00:00
..
boot ARM: SoC fixes for v5.11 2021-01-08 14:13:54 -08:00
configs ARM: device tree updates for 5.11 2020-12-16 16:27:35 -08:00
crypto crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
include KVM: arm64: Rename __vgic_v3_get_ich_vtr_el2() to __vgic_v3_get_gic_config() 2021-03-06 04:18:41 -05:00
kernel KVM: arm64: Don't access PMSELR_EL0/PMUSERENR_EL0 when no PMU is available 2021-03-06 04:18:40 -05:00
kvm KVM: arm64: Don't use cbz/adr with external symbols 2021-03-09 08:48:24 +00:00
lib arm64: mte: add in-kernel MTE helpers 2020-12-22 12:55:07 -08:00
mm arm64: Remove arm64_dma32_phys_limit and its uses 2021-01-12 17:49:25 +00:00
net arm64: bpf: Fix branch offset in JIT 2020-09-17 12:05:36 +01:00
xen arm64: xen: Use modern annotations for assembly functions 2020-01-09 16:09:42 +00:00
Kbuild
Kconfig Revert "arm64: Enable perf events based hard lockup detector" 2021-01-13 15:08:41 +00:00
Kconfig.debug arm64: remove TEXT_OFFSET randomization 2020-06-15 13:10:59 +01:00
Kconfig.platforms ARM: device tree updates for 5.11 2020-12-16 16:27:35 -08:00
Makefile arm64: link with -z norelro for LLD or aarch64-elf 2021-01-05 11:51:41 +00:00