]> xenbits.xensource.com Git - xen.git/commitdiff
x86/entry: Fix passing 6th argument for compat hypercalls
authorJason Andryuk <jandryuk@gmail.com>
Tue, 20 Mar 2018 13:51:23 +0000 (14:51 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 20 Mar 2018 13:51:23 +0000 (14:51 +0100)
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 <jandryuk@gmail.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/x86_64/compat/entry.S

index bc1f509672aae3e980776e3462b39c35c3b3f52f..b99b142e45c79fb64afededde8ee8bb68923c621 100644 (file)
@@ -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