Trimming the patch a bit. Just one small nit from the static analyzer inlined.
Rest looks good. Acked-by: Alin Gabriel Serdean <aserd...@ovn.org> <--------------------------8<--------------------------------------------------------------> /* @@ -124,12 +135,9 @@ OvsInitConntrack(POVS_SWITCH_CONTEXT context) VOID OvsCleanupConntrack(VOID) { - LOCK_STATE_EX lockState, lockStateNat; - NdisAcquireRWLockWrite(ovsConntrackLockObj, &lockState, 0); + LOCK_STATE_EX lockStateNat; ctThreadCtx.exit = 1; KeSetEvent(&ctThreadCtx.event, 0, FALSE); - NdisReleaseRWLock(ovsConntrackLockObj, &lockState); - KeWaitForSingleObject(ctThreadCtx.threadObject, Executive, KernelMode, FALSE, NULL); ObDereferenceObject(ctThreadCtx.threadObject); @@ -142,8 +150,14 @@ OvsCleanupConntrack(VOID) ovsConntrackTable = NULL; } - NdisFreeRWLock(ovsConntrackLockObj); - ovsConntrackLockObj = NULL; + for (UINT32 i = 0; i < CT_HASH_TABLE_SIZE; i++) { + if (ovsCtBucketLock[i] != NULL) { [Alin Serdean] datapath-windows\ovsext\conntrack.c(154): warning C6001: Using uninitialized memory '*ovsCtBucketLock'. + NdisFreeRWLock(ovsCtBucketLock[i]); + } + } + OvsFreeMemoryWithTag(ovsCtBucketLock, OVS_CT_POOL_TAG); + ovsCtBucketLock = NULL; + NdisAcquireRWLockWrite(ovsCtNatLockObj, &lockStateNat, 0); OvsNatCleanup(); NdisReleaseRWLock(ovsCtNatLockObj, &lockStateNat); @@ -179,11 +193,20 @@ OvsCtUpdateFlowKey(struct OvsFlowKey *key, } } <--------------------------8<--------------------------------------------------------------> _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev