xen64: implement 64-bit update_descriptor
64-bit hypercall interface can pass a maddr in one argument rather than splitting it. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Cc: Stephen Tweedie <sct@redhat.com> Cc: Eduardo Habkost <ehabkost@redhat.com> Cc: Mark McLoughlin <markmc@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
8a95408e18
commit
c05f1cfaba
|
@ -466,10 +466,15 @@ MULTI_update_descriptor(struct multicall_entry *mcl, u64 maddr,
|
||||||
struct desc_struct desc)
|
struct desc_struct desc)
|
||||||
{
|
{
|
||||||
mcl->op = __HYPERVISOR_update_descriptor;
|
mcl->op = __HYPERVISOR_update_descriptor;
|
||||||
|
if (sizeof(maddr) == sizeof(long)) {
|
||||||
|
mcl->args[0] = maddr;
|
||||||
|
mcl->args[1] = *(unsigned long *)&desc;
|
||||||
|
} else {
|
||||||
mcl->args[0] = maddr;
|
mcl->args[0] = maddr;
|
||||||
mcl->args[1] = maddr >> 32;
|
mcl->args[1] = maddr >> 32;
|
||||||
mcl->args[2] = desc.a;
|
mcl->args[2] = desc.a;
|
||||||
mcl->args[3] = desc.b;
|
mcl->args[3] = desc.b;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
|
|
Loading…
Reference in a new issue