Commit ec05090403ef4d760fbe701e31afd0f0edc414d5 ("x86/entry: Erase guest GPR state on entry to Xen") zero-ed %rbp, compat arg 6, but it is not restored before passing to hypercalls. We need to pass the saved compat arg 6 to the hypercall in r9, the 6th function argument.
Signed-off-by: Jason Andryuk <jandr...@gmail.com> --- This is against Xen 4.6. I believe it is also applicable to 4.7. xen/arch/x86/x86_64/compat/entry.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/x86/x86_64/compat/entry.S b/xen/arch/x86/x86_64/compat/entry.S index bc1f509672..b99b142e45 100644 --- a/xen/arch/x86/x86_64/compat/entry.S +++ b/xen/arch/x86/x86_64/compat/entry.S @@ -56,7 +56,7 @@ UNLIKELY_END(msi_check) xchgl %ecx,%esi /* Arg 2, Arg 4 */ movl %edx,%edx /* Arg 3 */ movl %edi,%r8d /* Arg 5 */ - movl %ebp,%r9d /* Arg 6 */ + movl UREGS_rbp(%rsp),%r9d /* Arg 6 */ movl UREGS_rbx(%rsp),%edi /* Arg 1 */ #define SHADOW_BYTES 0 /* No on-stack shadow state */ #endif -- 2.14.3 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel