* [kvm:queue 4/24] arch/x86/kvm/vmx/vmenter.S:98: Error: invalid operands (*UND* and *ABS* sections) for `*'
@ 2026-05-14 3:20 kernel test robot
2026-05-14 9:25 ` Paolo Bonzini
0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2026-05-14 3:20 UTC (permalink / raw)
To: Chang S. Bae; +Cc: oe-kbuild-all, kvm, Farrah Chen, Paolo Bonzini
Hi Chang,
FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.
tree: https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
head: 2b5e4245e1d31fd0858bb7abbd82af85a6457c33
commit: d1d1534a7ef4694a6a7b079c80e661dd66d04e9c [4/24] KVM: VMX: Macrofy GPR swapping in __vmx_vcpu_run()
config: i386-buildonly-randconfig-001-20260514 (https://download.01.org/0day-ci/archive/20260514/202605141102.53Vk824r-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260514/202605141102.53Vk824r-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605141102.53Vk824r-lkp@intel.com/
All errors (new ones prefixed by >>):
arch/x86/kvm/vmx/vmenter.S: Assembler messages:
>> arch/x86/kvm/vmx/vmenter.S:98: Error: invalid operands (*UND* and *ABS* sections) for `*'
>> arch/x86/kvm/vmx/vmenter.S:98: Error: invalid operands (*UND* and *ABS* sections) for `*'
>> arch/x86/kvm/vmx/vmenter.S:98: Error: invalid operands (*UND* and *ABS* sections) for `*'
>> arch/x86/kvm/vmx/vmenter.S:98: Error: invalid operands (*UND* and *ABS* sections) for `*'
>> arch/x86/kvm/vmx/vmenter.S:98: Error: invalid operands (*UND* and *ABS* sections) for `*'
>> arch/x86/kvm/vmx/vmenter.S:98: Error: invalid operands (*UND* and *ABS* sections) for `*'
arch/x86/kvm/vmx/vmenter.S:105: Error: invalid operands (*UND* and *ABS* sections) for `*'
arch/x86/kvm/vmx/vmenter.S:164: Error: invalid operands (*UND* and *ABS* sections) for `*'
arch/x86/kvm/vmx/vmenter.S:164: Error: invalid operands (*UND* and *ABS* sections) for `*'
arch/x86/kvm/vmx/vmenter.S:164: Error: invalid operands (*UND* and *ABS* sections) for `*'
arch/x86/kvm/vmx/vmenter.S:164: Error: invalid operands (*UND* and *ABS* sections) for `*'
arch/x86/kvm/vmx/vmenter.S:164: Error: invalid operands (*UND* and *ABS* sections) for `*'
arch/x86/kvm/vmx/vmenter.S:164: Error: invalid operands (*UND* and *ABS* sections) for `*'
arch/x86/kvm/vmx/vmenter.S:166: Error: invalid operands (*UND* and *ABS* sections) for `*'
vim +98 arch/x86/kvm/vmx/vmenter.S
88
89 /*
90 * Since vmentry is serializing on affected CPUs, there's no need for
91 * an LFENCE to stop speculation from skipping the wrmsr.
92 */
93
94 /*
95 * Load guest registers. Don't clobber flags. Intentionally omit
96 * %_ASM_SP as it's context switched by hardware
97 */
> 98 LOAD_REGS %_ASM_DI, VMX_vcpu_arch_regs, \
99 %_ASM_AX, %_ASM_CX, %_ASM_DX, %_ASM_BX, %_ASM_BP, %_ASM_SI
100 #ifdef CONFIG_X86_64
101 LOAD_REGS %_ASM_DI, VMX_vcpu_arch_regs, \
102 %r8, %r9, %r10, %r11, %r12, %r13, %r14, %r15
103 #endif
104 /* Load guest RDI. This kills the @vmx pointer! */
105 LOAD_REGS %_ASM_DI, VMX_vcpu_arch_regs, %_ASM_DI
106
107 /*
108 * Note, ALTERNATIVE_2 works in reverse order. If CLEAR_CPU_BUF_VM is
109 * enabled, do VERW unconditionally. If CPU_BUF_VM_MMIO is enabled,
110 * check @flags to see if the vCPU has access to host MMIO, and if so,
111 * do VERW. Else, do nothing (no mitigations needed/enabled).
112 */
113 ALTERNATIVE_2 "", \
114 __stringify(testl $KVM_ENTER_CLEAR_CPU_BUFFERS_FOR_MMIO, (%_ASM_SP); \
115 jz .Lskip_mmio_verw; \
116 VERW; \
117 .Lskip_mmio_verw:), \
118 X86_FEATURE_CLEAR_CPU_BUF_VM_MMIO, \
119 __stringify(VERW), X86_FEATURE_CLEAR_CPU_BUF_VM
120
121 /* Check @flags to see if VMLAUNCH or VMRESUME is needed. */
122 testl $KVM_ENTER_VMRESUME, (%_ASM_SP)
123 jz .Lvmlaunch
124
125 /*
126 * After a successful VMRESUME/VMLAUNCH, control flow "magically"
127 * resumes below at 'vmx_vmexit' due to the VMCS HOST_RIP setting.
128 * So this isn't a typical function and objtool needs to be told to
129 * save the unwind state here and restore it below.
130 */
131 UNWIND_HINT_SAVE
132
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [kvm:queue 4/24] arch/x86/kvm/vmx/vmenter.S:98: Error: invalid operands (*UND* and *ABS* sections) for `*'
2026-05-14 3:20 [kvm:queue 4/24] arch/x86/kvm/vmx/vmenter.S:98: Error: invalid operands (*UND* and *ABS* sections) for `*' kernel test robot
@ 2026-05-14 9:25 ` Paolo Bonzini
0 siblings, 0 replies; 2+ messages in thread
From: Paolo Bonzini @ 2026-05-14 9:25 UTC (permalink / raw)
To: kernel test robot, Chang S. Bae; +Cc: oe-kbuild-all, kvm, Farrah Chen
On 5/14/26 05:20, kernel test robot wrote:
> Hi Chang,
>
> FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.
This is my fault, the 32-bit macros needs to use __VCPU_REG_RAX rather
than __VCPU_REG_EAX (and so on so forth).
Paolo
> tree: https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
> head: 2b5e4245e1d31fd0858bb7abbd82af85a6457c33
> commit: d1d1534a7ef4694a6a7b079c80e661dd66d04e9c [4/24] KVM: VMX: Macrofy GPR swapping in __vmx_vcpu_run()
> config: i386-buildonly-randconfig-001-20260514 (https://download.01.org/0day-ci/archive/20260514/202605141102.53Vk824r-lkp@intel.com/config)
> compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260514/202605141102.53Vk824r-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202605141102.53Vk824r-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> arch/x86/kvm/vmx/vmenter.S: Assembler messages:
>>> arch/x86/kvm/vmx/vmenter.S:98: Error: invalid operands (*UND* and *ABS* sections) for `*'
>>> arch/x86/kvm/vmx/vmenter.S:98: Error: invalid operands (*UND* and *ABS* sections) for `*'
>>> arch/x86/kvm/vmx/vmenter.S:98: Error: invalid operands (*UND* and *ABS* sections) for `*'
>>> arch/x86/kvm/vmx/vmenter.S:98: Error: invalid operands (*UND* and *ABS* sections) for `*'
>>> arch/x86/kvm/vmx/vmenter.S:98: Error: invalid operands (*UND* and *ABS* sections) for `*'
>>> arch/x86/kvm/vmx/vmenter.S:98: Error: invalid operands (*UND* and *ABS* sections) for `*'
> arch/x86/kvm/vmx/vmenter.S:105: Error: invalid operands (*UND* and *ABS* sections) for `*'
> arch/x86/kvm/vmx/vmenter.S:164: Error: invalid operands (*UND* and *ABS* sections) for `*'
> arch/x86/kvm/vmx/vmenter.S:164: Error: invalid operands (*UND* and *ABS* sections) for `*'
> arch/x86/kvm/vmx/vmenter.S:164: Error: invalid operands (*UND* and *ABS* sections) for `*'
> arch/x86/kvm/vmx/vmenter.S:164: Error: invalid operands (*UND* and *ABS* sections) for `*'
> arch/x86/kvm/vmx/vmenter.S:164: Error: invalid operands (*UND* and *ABS* sections) for `*'
> arch/x86/kvm/vmx/vmenter.S:164: Error: invalid operands (*UND* and *ABS* sections) for `*'
> arch/x86/kvm/vmx/vmenter.S:166: Error: invalid operands (*UND* and *ABS* sections) for `*'
>
>
> vim +98 arch/x86/kvm/vmx/vmenter.S
>
> 88
> 89 /*
> 90 * Since vmentry is serializing on affected CPUs, there's no need for
> 91 * an LFENCE to stop speculation from skipping the wrmsr.
> 92 */
> 93
> 94 /*
> 95 * Load guest registers. Don't clobber flags. Intentionally omit
> 96 * %_ASM_SP as it's context switched by hardware
> 97 */
> > 98 LOAD_REGS %_ASM_DI, VMX_vcpu_arch_regs, \
> 99 %_ASM_AX, %_ASM_CX, %_ASM_DX, %_ASM_BX, %_ASM_BP, %_ASM_SI
> 100 #ifdef CONFIG_X86_64
> 101 LOAD_REGS %_ASM_DI, VMX_vcpu_arch_regs, \
> 102 %r8, %r9, %r10, %r11, %r12, %r13, %r14, %r15
> 103 #endif
> 104 /* Load guest RDI. This kills the @vmx pointer! */
> 105 LOAD_REGS %_ASM_DI, VMX_vcpu_arch_regs, %_ASM_DI
> 106
> 107 /*
> 108 * Note, ALTERNATIVE_2 works in reverse order. If CLEAR_CPU_BUF_VM is
> 109 * enabled, do VERW unconditionally. If CPU_BUF_VM_MMIO is enabled,
> 110 * check @flags to see if the vCPU has access to host MMIO, and if so,
> 111 * do VERW. Else, do nothing (no mitigations needed/enabled).
> 112 */
> 113 ALTERNATIVE_2 "", \
> 114 __stringify(testl $KVM_ENTER_CLEAR_CPU_BUFFERS_FOR_MMIO, (%_ASM_SP); \
> 115 jz .Lskip_mmio_verw; \
> 116 VERW; \
> 117 .Lskip_mmio_verw:), \
> 118 X86_FEATURE_CLEAR_CPU_BUF_VM_MMIO, \
> 119 __stringify(VERW), X86_FEATURE_CLEAR_CPU_BUF_VM
> 120
> 121 /* Check @flags to see if VMLAUNCH or VMRESUME is needed. */
> 122 testl $KVM_ENTER_VMRESUME, (%_ASM_SP)
> 123 jz .Lvmlaunch
> 124
> 125 /*
> 126 * After a successful VMRESUME/VMLAUNCH, control flow "magically"
> 127 * resumes below at 'vmx_vmexit' due to the VMCS HOST_RIP setting.
> 128 * So this isn't a typical function and objtool needs to be told to
> 129 * save the unwind state here and restore it below.
> 130 */
> 131 UNWIND_HINT_SAVE
> 132
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-05-14 9:25 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-14 3:20 [kvm:queue 4/24] arch/x86/kvm/vmx/vmenter.S:98: Error: invalid operands (*UND* and *ABS* sections) for `*' kernel test robot
2026-05-14 9:25 ` Paolo Bonzini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox