On 07.02.2024 15:25, Jan Beulich wrote: > On 07.02.2024 14:55, Andrew Cooper wrote: >> 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. > > What's not clear to me: How would CODE() differ from both FUNC() and > LABEL()? And if the symbol is to be a function, what's wrong with > using FUNC() here as is?
Well, I figured this one: FUNC() may switch sections following patch 1, so indeed we'd need something that is much like FUNC(), but without the (optional) section switch. Jan