aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/xen/hypercall.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/include/asm/xen/hypercall.h')
-rw-r--r--arch/x86/include/asm/xen/hypercall.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/x86/include/asm/xen/hypercall.h b/arch/x86/include/asm/xen/hypercall.h
index 9606688caa4b..7cb282e9e587 100644
--- a/arch/x86/include/asm/xen/hypercall.h
+++ b/arch/x86/include/asm/xen/hypercall.h
@@ -113,10 +113,9 @@ extern struct { char _entry[32]; } hypercall_page[];
113 register unsigned long __arg2 asm(__HYPERCALL_ARG2REG) = __arg2; \ 113 register unsigned long __arg2 asm(__HYPERCALL_ARG2REG) = __arg2; \
114 register unsigned long __arg3 asm(__HYPERCALL_ARG3REG) = __arg3; \ 114 register unsigned long __arg3 asm(__HYPERCALL_ARG3REG) = __arg3; \
115 register unsigned long __arg4 asm(__HYPERCALL_ARG4REG) = __arg4; \ 115 register unsigned long __arg4 asm(__HYPERCALL_ARG4REG) = __arg4; \
116 register unsigned long __arg5 asm(__HYPERCALL_ARG5REG) = __arg5; \ 116 register unsigned long __arg5 asm(__HYPERCALL_ARG5REG) = __arg5;
117 register void *__sp asm(_ASM_SP);
118 117
119#define __HYPERCALL_0PARAM "=r" (__res), "+r" (__sp) 118#define __HYPERCALL_0PARAM "=r" (__res), ASM_CALL_CONSTRAINT
120#define __HYPERCALL_1PARAM __HYPERCALL_0PARAM, "+r" (__arg1) 119#define __HYPERCALL_1PARAM __HYPERCALL_0PARAM, "+r" (__arg1)
121#define __HYPERCALL_2PARAM __HYPERCALL_1PARAM, "+r" (__arg2) 120#define __HYPERCALL_2PARAM __HYPERCALL_1PARAM, "+r" (__arg2)
122#define __HYPERCALL_3PARAM __HYPERCALL_2PARAM, "+r" (__arg3) 121#define __HYPERCALL_3PARAM __HYPERCALL_2PARAM, "+r" (__arg3)
@@ -552,13 +551,13 @@ static inline void
552MULTI_update_descriptor(struct multicall_entry *mcl, u64 maddr, 551MULTI_update_descriptor(struct multicall_entry *mcl, u64 maddr,
553 struct desc_struct desc) 552 struct desc_struct desc)
554{ 553{
555 u32 *p = (u32 *) &desc;
556
557 mcl->op = __HYPERVISOR_update_descriptor; 554 mcl->op = __HYPERVISOR_update_descriptor;
558 if (sizeof(maddr) == sizeof(long)) { 555 if (sizeof(maddr) == sizeof(long)) {
559 mcl->args[0] = maddr; 556 mcl->args[0] = maddr;
560 mcl->args[1] = *(unsigned long *)&desc; 557 mcl->args[1] = *(unsigned long *)&desc;
561 } else { 558 } else {
559 u32 *p = (u32 *)&desc;
560
562 mcl->args[0] = maddr; 561 mcl->args[0] = maddr;
563 mcl->args[1] = maddr >> 32; 562 mcl->args[1] = maddr >> 32;
564 mcl->args[2] = *p++; 563 mcl->args[2] = *p++;