Re: (subset) [PATCH v9 00/24] KVM: s390: Introduce arm64 KVM

From: Arnd Bergmann

Date: Fri Oct 02 2026 - 04:47:45 EST


On Thu, Oct 1, 2026, at 15:39, Arnd Bergmann wrote:
> On Thu, Oct 1, 2026, at 15:27, Steffen Eiden wrote:
>
>> I can send the two fixup patches as a reply here for this tomorrow or
>> later today if you want.
>
> My build bot is churning away looking for more corner cases.
> I initially had the wrong base, but with this one and the other
> two I sent, things are starting to look good. I'll keep it
> running over night, but if you don't hear from me for any additional
> build regressions in the next hour, it's probably fine.

No more build failures overnight, but after changing to gcc-10.5.0,
I get link failures for the namespaced module:

`__s390_indirect_jump_r1' referenced in section `.text' of arch/s390/kvm/arm64/kvm-namespaced.o: defined in discarded section `.text.__s390_indirect_jump_r1[__s390_indirect_jump_r1]' of arch/s390/kvm/arm64/kvm-namespaced.o
`__s390_indirect_jump_r4' referenced in section `.text' of arch/s390/kvm/arm64/kvm-namespaced.o: defined in discarded section `.text.__s390_indirect_jump_r4[__s390_indirect_jump_r4]' of arch/s390/kvm/arm64/kvm-namespaced.o
`__s390_indirect_jump_r14' referenced in section `.text' of arch/s390/kvm/arm64/kvm-namespaced.o: defined in discarded section `.text.__s390_indirect_jump_r14[__s390_indirect_jump_r14]' of arch/s390/kvm/arm64/kvm-namespaced.o
`__s390_indirect_jump_r1' referenced in section `.text' of arch/s390/kvm/arm64/kvm-namespaced.o: defined in discarded section `.text.__s390_indirect_jump_r1[__s390_indirect_jump_r1]' of arch/s390/kvm/arm64/kvm-namespaced.o
`__s390_indirect_jump_r4' referenced in section `.text' of arch/s390/kvm/arm64/kvm-namespaced.o: defined in discarded section `.text.__s390_indirect_jump_r4[__s390_indirect_jump_r4]' of arch/s390/kvm/arm64/kvm-namespaced.o
`__s390_indirect_jump_r14' referenced in section `.text' of arch/s390/kvm/arm64/kvm-namespaced.o: defined in discarded section `.text.__s390_indirect_jump_r14[__s390_indirect_jump_r14]' of arch/s390/kvm/arm64/kvm-namespaced.o

See https://pastebin.com/raw/pJYu8UAb for the .config that triggered it.
Later compilers get CONFIG_EXPOLINE_EXTERN=y, which avoids the problem,
so an easy workaround would be to make the module depend on that symbol:

--- a/arch/s390/kvm/Kconfig
+++ b/arch/s390/kvm/Kconfig
@@ -19,6 +19,7 @@ if VIRTUALIZATION
config KVM
def_tristate y
prompt "Kernel-based Virtual Machine (KVM) support"
+ depends on !EXPOLINE || EXPOLINE_EXTERN
select HAVE_KVM_CPU_RELAX_INTERCEPT
select KVM_ASYNC_PF
select KVM_ASYNC_PF_SYNC

Arnd