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

[win-pv-devel] [PATCH 02/10] Fix bug in EVTCHN interrupt enabling



The code in EvtchnOpen attempts to enable interrupts on demand when new
channels are added to a list. However there is a bug in the logic that
means interrupts will not be enabled until the second channel is opened.
This patch fixes the bug.

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

diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index d2743bd..9ba2e84 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -359,13 +359,13 @@ EvtchnOpen(
     Context->Channel[LocalPort] = Channel;
     Channel->Active = TRUE;
 
+    InsertTailList(&Context->List, &Channel->ListEntry);
+
     if (!IsListEmpty(&Context->List) && !Context->Enabled) {
         EvtchnInterruptEnable(Context);
         Context->Enabled = TRUE;
     }
 
-    InsertTailList(&Context->List, &Channel->ListEntry);
-
     __EvtchnReleaseInterruptLock(Context, DISPATCH_LEVEL);
 
     KeLowerIrql(Irql);
-- 
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®.