[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] x86: Fix multicall handling for 6-arg hypercalls.



# HG changeset patch
# User Keir Fraser <keir@xxxxxxx>
# Date 1292412088 0
# Node ID c0662cb08260d831ae8d211ba16fc7038cb889b6
# Parent  532d4a2d197ecc81343d98ed97c71d7cd12cef63
x86: Fix multicall handling for 6-arg hypercalls.

None exist at the moment, but this makes multicall handling consistent
with direct PV and HVM hypercall handling.

Signed-off-by: Keir Fraser <keir@xxxxxxx>
---
 xen/include/asm-x86/multicall.h |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletion(-)

diff -r 532d4a2d197e -r c0662cb08260 xen/include/asm-x86/multicall.h
--- a/xen/include/asm-x86/multicall.h   Wed Dec 15 11:17:41 2010 +0000
+++ b/xen/include/asm-x86/multicall.h   Wed Dec 15 11:21:28 2010 +0000
@@ -22,6 +22,7 @@
             "    movq  %c2+2*%c3(%0),%%rdx; "                \
             "    movq  %c2+3*%c3(%0),%%rcx; "                \
             "    movq  %c2+4*%c3(%0),%%r8; "                 \
+            "    movq  %c2+5*%c3(%0),%%r9; "                 \
             "    callq *%%rax; "                             \
             "1:  movq  %%rax,%c4(%0)\n"                      \
             ".section .fixup,\"ax\"\n"                       \
@@ -51,6 +52,7 @@
             "    movl  %c2+2*%c3(%0),%%edx; "                \
             "    movl  %c2+3*%c3(%0),%%ecx; "                \
             "    movl  %c2+4*%c3(%0),%%r8d; "                \
+            "    movl  %c2+5*%c3(%0),%%r9d; "                \
             "    callq *%%rax; "                             \
             "1:  movl  %%eax,%c4(%0)\n"                      \
             ".section .fixup,\"ax\"\n"                       \
@@ -72,6 +74,7 @@
 #define do_multicall_call(_call)                             \
         __asm__ __volatile__ (                               \
             "    movl  %c1(%0),%%eax; "                      \
+            "    pushl %c2+5*%c3(%0); "                      \
             "    pushl %c2+4*%c3(%0); "                      \
             "    pushl %c2+3*%c3(%0); "                      \
             "    pushl %c2+2*%c3(%0); "                      \
@@ -81,7 +84,7 @@
             "    jae   2f; "                                 \
             "    call  *hypercall_table(,%%eax,4); "         \
             "1:  movl  %%eax,%c4(%0); "                      \
-            "    addl  $20,%%esp\n"                          \
+            "    addl  $24,%%esp\n"                          \
             ".section .fixup,\"ax\"\n"                       \
             "2:  movl  $-"STR(ENOSYS)",%%eax\n"              \
             "    jmp   1b\n"                                 \

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.