It is bad form to have inter-function fallthrough. It only functions right now because alignment padding bytes are NOPs.
However, it also interferes with livepatching binary diffs, because the implicit grouping of the two functions isn't expressed in the ELF metadata. Signed-off-by: Andrew Cooper <[email protected]> --- CC: Jan Beulich <[email protected]> CC: Roger Pau Monné <[email protected]> CC: Wei Liu <[email protected]> CC: Konrad Rzeszutek Wilk <[email protected]> CC: Ross Lagerwall <[email protected]> --- xen/arch/x86/x86_64/entry.S | 3 +++ 1 file changed, 3 insertions(+) diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S index c3f6b667a72a..fc64ef1fd460 100644 --- a/xen/arch/x86/x86_64/entry.S +++ b/xen/arch/x86/x86_64/entry.S @@ -723,7 +723,9 @@ END(common_interrupt) FUNC(entry_PF) ENDBR64 movl $X86_EXC_PF, 4(%rsp) + jmp handle_exception END(entry_PF) + /* No special register assumptions. */ FUNC(handle_exception, 0) ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP @@ -1023,6 +1025,7 @@ FUNC(entry_NMI) ENDBR64 pushq $0 movl $X86_EXC_NMI, 4(%rsp) + jmp handle_ist_exception END(entry_NMI) FUNC(handle_ist_exception) -- 2.30.2
