[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH V2 04/13] xen: close evtchn port if binding to irq fails



Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
---
 drivers/xen/evtchn.c |    9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/xen/evtchn.c b/drivers/xen/evtchn.c
index b1f60a0..ef02dfa 100644
--- a/drivers/xen/evtchn.c
+++ b/drivers/xen/evtchn.c
@@ -269,6 +269,15 @@ static int evtchn_bind_to_user(struct per_user_data *u, 
int port)
                                       u->name, (void *)(unsigned long)port);
        if (rc >= 0)
                rc = evtchn_make_refcounted(port);
+       else {
+               /* bind failed, should close the port now */
+               struct evtchn_close close;
+               close.port = port;
+               if (port != 0 && /* port 0 is never used */
+                   HYPERVISOR_event_channel_op(EVTCHNOP_close, &close) != 0)
+                       BUG();
+               set_port_user(port, NULL);
+       }
 
        return rc;
 }
-- 
1.7.10.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.