[ovs-dev] [PATCH v3 3/3] datapath-windows: Optimize conntrack lock implementation.
Anand Kumar
kumaranand at vmware.com
Mon Jan 29 18:24:55 UTC 2018
Hi Alin,
Thanks for the review. I’ll address the warning and send out the patch.
Thanks,
Anand Kumar
On 1/29/18, 5:20 AM, "Alin Serdean" <aserdean at cloudbasesolutions.com> wrote:
Trimming the patch a bit.
Just one small nit from the static analyzer inlined.
Rest looks good.
Acked-by: Alin Gabriel Serdean <aserdean at 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<-------------------------------------------------------------->
More information about the dev
mailing list