From: David Woodhouse Date: Mon, 26 Dec 2022 11:24:31 +0000 (+0000) Subject: Revert "KVM: x86/xen: Simplify eventfd IOCTLs" X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=c3f97fac253fcc41e5496106313e85a85b14e5ff;p=users%2Fdwmw2%2Flinux.git Revert "KVM: x86/xen: Simplify eventfd IOCTLs" This reverts commit 2727004e3dfc2fb3f756c68a1424f2a18c9ab00c. --- diff --git a/arch/x86/kvm/xen.c b/arch/x86/kvm/xen.c index 61327b4e7a14c..935f845d005ca 100644 --- a/arch/x86/kvm/xen.c +++ b/arch/x86/kvm/xen.c @@ -1827,6 +1827,9 @@ static int kvm_xen_eventfd_update(struct kvm *kvm, struct evtchnfd *evtchnfd; int ret; + if (!port || port >= max_evtchn_port(kvm)) + return -EINVAL; + /* Protect writes to evtchnfd as well as the idr lookup. */ mutex_lock(&kvm->lock); evtchnfd = idr_find(&kvm->arch.xen.evtchn_ports, port); @@ -1872,9 +1875,12 @@ static int kvm_xen_eventfd_assign(struct kvm *kvm, { u32 port = data->u.evtchn.send_port; struct eventfd_ctx *eventfd = NULL; - struct evtchnfd *evtchnfd; + struct evtchnfd *evtchnfd = NULL; int ret = -EINVAL; + if (!port || port >= max_evtchn_port(kvm)) + return -EINVAL; + evtchnfd = kzalloc(sizeof(struct evtchnfd), GFP_KERNEL); if (!evtchnfd) return -ENOMEM;