On 07/02/2024 1:37 pm, Jan Beulich wrote: > Use the generic framework from xen/linkage.h. > > Signed-off-by: Jan Beulich <jbeul...@suse.com> > --- > v6: New. > > --- a/xen/arch/x86/hvm/vmx/entry.S > +++ b/xen/arch/x86/hvm/vmx/entry.S > @@ -24,7 +24,7 @@ > #define VMRESUME .byte 0x0f,0x01,0xc3 > #define VMLAUNCH .byte 0x0f,0x01,0xc2 > > -ENTRY(vmx_asm_vmexit_handler) > +FUNC(vmx_asm_vmexit_handler) > SAVE_ALL > > mov %cr2,%rax > @@ -132,7 +132,7 @@ UNLIKELY_END(realmode) > call vmx_vmentry_failure > jmp .Lvmx_process_softirqs > > -ENTRY(vmx_asm_do_vmentry) > +LABEL(vmx_asm_do_vmentry)
This really is a function, not a label. xen.git/xen$ git grep vmx_asm_do_vmentry arch/x86/hvm/vmx/entry.S:135:ENTRY(vmx_asm_do_vmentry) arch/x86/hvm/vmx/vmcs.c:1855:void noreturn vmx_asm_do_vmentry(void); arch/x86/hvm/vmx/vmcs.c:1929: reset_stack_and_jump(vmx_asm_do_vmentry); It is giant mess, of two functions forming part of the same loop. Considering that you declines to take CODE, I don't know what to suggest. The point of CODE, distinct to FUNC, was to identify the places where weird things were going on, and this absolutely counts. ~Andrew