diff --git a/[refs] b/[refs] index d376bf985b48..34f4ed983b54 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8a95408e183b3e4aaf3b6a66fa34bff4db53011b +refs/heads/master: c05f1cfaba846dfbd4a67e348087d32326288fe0 diff --git a/trunk/include/asm-x86/xen/hypercall.h b/trunk/include/asm-x86/xen/hypercall.h index d9e4cf7b23ac..91cb7fd5c123 100644 --- a/trunk/include/asm-x86/xen/hypercall.h +++ b/trunk/include/asm-x86/xen/hypercall.h @@ -466,10 +466,15 @@ MULTI_update_descriptor(struct multicall_entry *mcl, u64 maddr, struct desc_struct desc) { mcl->op = __HYPERVISOR_update_descriptor; - mcl->args[0] = maddr; - mcl->args[1] = maddr >> 32; - mcl->args[2] = desc.a; - mcl->args[3] = desc.b; + if (sizeof(maddr) == sizeof(long)) { + mcl->args[0] = maddr; + mcl->args[1] = *(unsigned long *)&desc; + } else { + mcl->args[0] = maddr; + mcl->args[1] = maddr >> 32; + mcl->args[2] = desc.a; + mcl->args[3] = desc.b; + } } static inline void