summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/xen/os/hypercall.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/xen/os/hypercall.c')
-rw-r--r--usr/src/uts/common/xen/os/hypercall.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/usr/src/uts/common/xen/os/hypercall.c b/usr/src/uts/common/xen/os/hypercall.c
index 4306ce1130..308c7246db 100644
--- a/usr/src/uts/common/xen/os/hypercall.c
+++ b/usr/src/uts/common/xen/os/hypercall.c
@@ -406,9 +406,8 @@ HYPERVISOR_suspend(ulong_t start_info_mfn)
}
long
-HYPERVISOR_mca(uint32_t cmd, xen_mc_arg_t *arg)
+HYPERVISOR_mca(uint32_t cmd, xen_mc_t *xmcp)
{
- xen_mc_t xmc;
long rv;
switch (cmd) {
@@ -416,8 +415,6 @@ HYPERVISOR_mca(uint32_t cmd, xen_mc_arg_t *arg)
case XEN_MC_physcpuinfo:
case XEN_MC_msrinject:
case XEN_MC_mceinject:
- if (arg == NULL)
- return (EINVAL);
break;
case XEN_MC_notifydomain:
@@ -427,15 +424,10 @@ HYPERVISOR_mca(uint32_t cmd, xen_mc_arg_t *arg)
return (EINVAL);
}
- xmc.interface_version = XEN_MCA_INTERFACE_VERSION;
- xmc.cmd = cmd;
- if (arg != NULL)
- xmc.u = *arg;
+ xmcp->interface_version = XEN_MCA_INTERFACE_VERSION;
+ xmcp->cmd = cmd;
- rv = __hypercall1(__HYPERVISOR_mca, (ulong_t)&xmc);
-
- if (rv == 0 && arg != NULL)
- *arg = xmc.u;
+ rv = __hypercall1(__HYPERVISOR_mca, (ulong_t)xmcp);
return (rv);
}