Commit 98a5cfd2 authored by Juergen Gross's avatar Juergen Gross
Browse files

x86/xen: fix xen_hypercall_hvm() to not clobber %rbx



xen_hypercall_hvm(), which is used when running as a Xen PVH guest at
most only once during early boot, is clobbering %rbx. Depending on
whether the caller relies on %rbx to be preserved across the call or
not, this clobbering might result in an early crash of the system.

This can be avoided by using an already saved register instead of %rbx.

Fixes: b4845bb6 ("x86/xen: add central hypercall functions")
Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
Reviewed-by: default avatarJan Beulich <jbeulich@suse.com>
Reviewed-by: default avatarAndrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
parent bda50f77
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -117,8 +117,8 @@ SYM_FUNC_START(xen_hypercall_hvm)
	pop %ebx
	pop %eax
#else
	lea xen_hypercall_amd(%rip), %rbx
	cmp %rax, %rbx
	lea xen_hypercall_amd(%rip), %rcx
	cmp %rax, %rcx
#ifdef CONFIG_FRAME_POINTER
	pop %rax	/* Dummy pop. */
#endif