From: Keir Fraser Date: Wed, 15 Dec 2010 11:21:28 +0000 (+0000) Subject: x86: Fix multicall handling for 6-arg hypercalls. X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=bc14e5d1e010afad8b8b93ec462088e1d271ce8e;p=xen.git 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 --- diff --git a/xen/include/asm-x86/multicall.h b/xen/include/asm-x86/multicall.h index 9d36609e19..c91544ddd3 100644 --- a/xen/include/asm-x86/multicall.h +++ b/xen/include/asm-x86/multicall.h @@ -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" \