Hi Greg and Sasha, Please apply commit dbaee836d60a ("KVM: arm64: Don't use cbz/adr with external symbols") to linux-5.10.y, as a recent LLVM optimization around __cold functions [1] can cause hyp_panic() to be too far away from __guest_enter(), resulting in the same error that occurred with LTO (for the same reason): ld.lld: error: arch/arm64/built-in.a(kvm/hyp/entry.o):(function __guest_enter: .text+0x120): relocation R_AARCH64_CONDBR19 out of range: 14339212 is not in [-1048576, 1048575]; references 'hyp_panic' >>> referenced by entry.S:88 (arch/arm64/kvm/hyp/vhe/../entry.S:88) >>> defined in arch/arm64/built-in.a(kvm/hyp/vhe/switch.o) ld.lld: error: arch/arm64/built-in.a(kvm/hyp/entry.o):(function __guest_enter: .text+0x134): relocation R_AARCH64_ADR_PREL_LO21 out of range: 14339192 is not in [-1048576, 1048575]; references 'hyp_panic' >>> referenced by entry.S:97 (arch/arm64/kvm/hyp/vhe/../entry.S:97) >>> defined in arch/arm64/built-in.a(kvm/hyp/vhe/switch.o) It applies cleanly with 'patch -p1' and I have verified that it fixes the issue. [1]: https://github.com/llvm/llvm-project/commit/6b11573b8c5e3d36beee099dbe7347c2a007bf53 Cheers, Nathan