Apply dbaee836d60a8 to linux-5.10.y

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux