aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86/xen
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-x86/xen')
-rw-r--r--include/asm-x86/xen/hypercall.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/include/asm-x86/xen/hypercall.h b/include/asm-x86/xen/hypercall.h
index d9e4cf7b23ac..91cb7fd5c123 100644
--- a/include/asm-x86/xen/hypercall.h
+++ b/include/asm-x86/xen/hypercall.h
@@ -466,10 +466,15 @@ MULTI_update_descriptor(struct multicall_entry *mcl, u64 maddr,
466 struct desc_struct desc) 466 struct desc_struct desc)
467{ 467{
468 mcl->op = __HYPERVISOR_update_descriptor; 468 mcl->op = __HYPERVISOR_update_descriptor;
469 mcl->args[0] = maddr; 469 if (sizeof(maddr) == sizeof(long)) {
470 mcl->args[1] = maddr >> 32; 470 mcl->args[0] = maddr;
471 mcl->args[2] = desc.a; 471 mcl->args[1] = *(unsigned long *)&desc;
472 mcl->args[3] = desc.b; 472 } else {
473 mcl->args[0] = maddr;
474 mcl->args[1] = maddr >> 32;
475 mcl->args[2] = desc.a;
476 mcl->args[3] = desc.b;
477 }
473} 478}
474 479
475static inline void 480static inline void