[ovs-dev] [PATCH v2 1/2] datapath-windows: Fix CtrlLock acquire issue in OvsReadEventCmdHandler

Sorin Vinturis svinturis at cloudbasesolutions.com
Tue Oct 14 18:35:07 UTC 2014


Looks good Ankur. Thanks!

Acked-by: Sorin Vinturis <svinturis at cloudbasesolutions.com>

-----Original Message-----
From: dev [mailto:dev-bounces at openvswitch.org] On Behalf Of Eitan Eliahu
Sent: Tuesday, October 14, 2014 8:17 PM
To: Ankur Sharma; dev at openvswitch.org
Subject: Re: [ovs-dev] [PATCH v2 1/2] datapath-windows: Fix CtrlLock acquire issue in OvsReadEventCmdHandler

Acked-by: Eitan Eliahu <eliahue at vmware.com>

Thanks Ankur,
Eitan

-----Original Message-----
From: dev [mailto:dev-bounces at openvswitch.org] On Behalf Of Ankur Sharma
Sent: Tuesday, October 14, 2014 10:16 AM
To: dev at openvswitch.org
Subject: [ovs-dev] [PATCH v2 1/2] datapath-windows: Fix CtrlLock acquire issue in OvsReadEventCmdHandler

OvsReadEventCmdHandler was calling OvsRemoveEventEntry after acquiring CtrlLock. OvsRemoveEventEntry in turn also tries to acquire the same lock.

Added a new lock in Event.c for the eventQueue.

Signed-off-by: Ankur Sharma <ankursharma at vmware.com>
---
 datapath-windows/ovsext/Event.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/datapath-windows/ovsext/Event.c b/datapath-windows/ovsext/Event.c index 467771d..d80f3fd 100644
--- a/datapath-windows/ovsext/Event.c
+++ b/datapath-windows/ovsext/Event.c
@@ -28,15 +28,15 @@
 #include "Debug.h"
 
 LIST_ENTRY ovsEventQueue;
+static NDIS_SPIN_LOCK eventQueueLock;
 UINT32 ovsNumEventQueue;
 UINT32 ovsNumPollAll;
 
-extern PNDIS_SPIN_LOCK gOvsCtrlLock;
-
 NTSTATUS
 OvsInitEventQueue()
 {
     InitializeListHead(&ovsEventQueue);
+    NdisAllocateSpinLock(&eventQueueLock);
     return STATUS_SUCCESS;
 }
 
@@ -45,18 +45,19 @@ OvsCleanupEventQueue()  {
     ASSERT(IsListEmpty(&ovsEventQueue));
     ASSERT(ovsNumEventQueue == 0);
+    NdisFreeSpinLock(&eventQueueLock);
 }
 
 static __inline VOID
 OvsAcquireEventQueueLock()
 {
-    NdisAcquireSpinLock(gOvsCtrlLock);
+    NdisAcquireSpinLock(&eventQueueLock);
 }
 
 static __inline VOID
 OvsReleaseEventQueueLock()
 {
-   NdisReleaseSpinLock(gOvsCtrlLock);
+   NdisReleaseSpinLock(&eventQueueLock);
 }
 
 /*
--
1.9.1

_______________________________________________
dev mailing list
dev at openvswitch.org
https://urldefense.proofpoint.com/v1/url?u=http://openvswitch.org/mailman/listinfo/dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=yTvML8OxA42Jb6ViHe7fUXbvPVOYDPVq87w43doxtlY%3D%0A&m=u%2FpCXxVbHTLEi6XUcRi6kQnn%2Fe30TTprbl0L0R2KoaU%3D%0A&s=6cc3db0a7628916d299e1109f3754fb815f422c016389b9fb6c8e0a3d405bba3
_______________________________________________
dev mailing list
dev at openvswitch.org
http://openvswitch.org/mailman/listinfo/dev



More information about the dev mailing list