> > - ASSERT(KeGetCurrentIrql() == DISPATCH_LEVEL); > > OvsAcquireDatapathRead(datapath, &dpLockState, dispatch); > > We can pass NDIS_RWL_AT_DISPATCH_LEVEL instead of 'dispatch', and let the > ASSERT be. > > SV: Here, I will leave the use of the 'dispatch' variable, due to the fact > that NDIS calls our SendNetBufferListsHandler, i.e. OvsExtSendNBL, at IRQL <= > DISPATCH_LEVEL. Also I'll undo the assert deletion.
We have acquired another lock by now a few lines above, which elevates us to NDIS_RWL_AT_DISPATCH_LEVEL. Hence the ASSERT that we are in dispatch level. I am ok if you want to use 'dispatch' variable instead of using hardcoded value NDIS_RWL_AT_DISPATCH_LEVEL. 230 /* Take the DispatchLock so none of the VPORTs disconnect while 231 * we are setting destination ports. 232 * 233 * XXX: acquire/release the dispatch lock for a "batch" of packets 234 * rather than for each packet. */ 235 NdisAcquireRWLockRead(switchContext->dispatchLock, &lockState, 236 dispatch); Look forward to the v2. thanks, -- Nithin _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev