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

[win-pv-devel] [PATCH 03/15] Fix EvtchnOpen() error path



It's possible for an error in the latter stages of EvtchnOpen() to cause the
channel to be left open in Xen. Also the Mask boolean was not being cleared
which would lead to ASSERTion failures in checked builds.

Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
---
 src/xenbus/evtchn.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index b1528d5..16060aa 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -452,8 +452,12 @@ fail3:
     Error("fail3\n");
 
     Channel->LocalPort = 0;
+    Channel->Mask = FALSE;
     RtlZeroMemory(&Channel->Parameters, sizeof (XENBUS_EVTCHN_PARAMETERS));
 
+    if (Channel->Type != XENBUS_EVTCHN_TYPE_FIXED)
+        (VOID) EventChannelClose(LocalPort);
+
 fail2:
     Error("fail2\n");
 
-- 
2.1.1


_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel


 


Rackspace

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