diff --git a/xen/common/domctl.c b/xen/common/domctl.c index bade9a63b1..72a44953d0 100644 --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -1018,9 +1018,9 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl) break; case XEN_DOMCTL_vm_event_op: - ret = vm_event_domctl(d, &op->u.vm_event_op, - guest_handle_cast(u_domctl, void)); - copyback = 1; + ret = vm_event_domctl(d, &op->u.vm_event_op); + if ( ret == 0 ) + copyback = true; break; #ifdef CONFIG_MEM_ACCESS diff --git a/xen/common/vm_event.c b/xen/common/vm_event.c index 74a475539d..902e152e21 100644 --- a/xen/common/vm_event.c +++ b/xen/common/vm_event.c @@ -583,8 +583,7 @@ void vm_event_cleanup(struct domain *d) #endif } -int vm_event_domctl(struct domain *d, struct xen_domctl_vm_event_op *vec, - XEN_GUEST_HANDLE_PARAM(void) u_domctl) +int vm_event_domctl(struct domain *d, struct xen_domctl_vm_event_op *vec) { int rc; @@ -594,9 +593,6 @@ int vm_event_domctl(struct domain *d, struct xen_domctl_vm_event_op *vec, return 0; } - if ( unlikely(d == NULL) ) - return -ESRCH; - rc = xsm_vm_event_control(XSM_PRIV, d, vec->mode, vec->op); if ( rc ) return rc; diff --git a/xen/include/xen/vm_event.h b/xen/include/xen/vm_event.h index 7f6fb6d518..3cc2b204e5 100644 --- a/xen/include/xen/vm_event.h +++ b/xen/include/xen/vm_event.h @@ -64,8 +64,7 @@ void vm_event_cancel_slot(struct domain *d, struct vm_event_domain *ved); void vm_event_put_request(struct domain *d, struct vm_event_domain *ved, vm_event_request_t *req); -int vm_event_domctl(struct domain *d, struct xen_domctl_vm_event_op *vec, - XEN_GUEST_HANDLE_PARAM(void) u_domctl); +int vm_event_domctl(struct domain *d, struct xen_domctl_vm_event_op *vec); void vm_event_vcpu_pause(struct vcpu *v); void vm_event_vcpu_unpause(struct vcpu *v);