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 <ankursha...@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@openvswitch.org http://openvswitch.org/mailman/listinfo/dev