Acked-by: Eitan Eliahu <elia...@vmware.com>

-----Original Message-----
From: dev [mailto:dev-boun...@openvswitch.org] On Behalf Of Sorin Vinturis
Sent: Wednesday, March 25, 2015 1:14 PM
To: dev@openvswitch.org
Subject: [ovs-dev] [PATCH 02/11] datapath-windows: Added specific pool tag for 
datapath code

All memory allocations within datapath code have 'DSVO' pool tag.

Signed-off-by: Sorin Vinturis <svintu...@cloudbasesolutions.com>
Reported-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com>
Reported-at: 
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_openvswitch_ovs-2Dissues_issues_56&d=AwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=CWsgHUxi6ExLXY798tmo3LJ4e3geGYp56lkcH-5cLCY&m=DZ9NxwHwM2-ju5h2ApoXI4ixxtWhE5XOWxehunLNePA&s=03pH_zMsgx4mHjve75q_KTCcDggcvsnovQkvAGLLWg0&e=
---
 datapath-windows/ovsext/Datapath.c | 38 +++++++++++++++++++++++++++++++++++---
 datapath-windows/ovsext/Datapath.h | 31 +++----------------------------
 datapath-windows/ovsext/Util.h     |  1 +
 3 files changed, 39 insertions(+), 31 deletions(-)

diff --git a/datapath-windows/ovsext/Datapath.c 
b/datapath-windows/ovsext/Datapath.c
index c6fe89e..888c6ef 100644
--- a/datapath-windows/ovsext/Datapath.c
+++ b/datapath-windows/ovsext/Datapath.c
@@ -349,6 +349,37 @@ extern POVS_SWITCH_CONTEXT gOvsSwitchContext;  
NDIS_SPIN_LOCK ovsCtrlLockObj;  PNDIS_SPIN_LOCK gOvsCtrlLock;
 
+NTSTATUS
+InitUserDumpState(POVS_OPEN_INSTANCE instance,
+                  POVS_MESSAGE ovsMsg)
+{
+    /* Clear the dumpState from a previous dump sequence. */
+    ASSERT(instance->dumpState.ovsMsg == NULL);
+    ASSERT(ovsMsg);
+
+    instance->dumpState.ovsMsg =
+        (POVS_MESSAGE)OvsAllocateMemoryWithTag(sizeof(OVS_MESSAGE),
+                                               OVS_DATAPATH_POOL_TAG);
+    if (instance->dumpState.ovsMsg == NULL) {
+        return STATUS_NO_MEMORY;
+    }
+    RtlCopyMemory(instance->dumpState.ovsMsg, ovsMsg,
+                  sizeof *instance->dumpState.ovsMsg);
+    RtlZeroMemory(instance->dumpState.index,
+                  sizeof instance->dumpState.index);
+
+    return STATUS_SUCCESS;
+}
+
+VOID
+FreeUserDumpState(POVS_OPEN_INSTANCE instance) {
+    if (instance->dumpState.ovsMsg != NULL) {
+        OvsFreeMemoryWithTag(instance->dumpState.ovsMsg,
+                             OVS_DATAPATH_POOL_TAG);
+        RtlZeroMemory(&instance->dumpState, sizeof instance->dumpState);
+    }
+}
 
 VOID
 OvsInit()
@@ -497,7 +528,8 @@ OvsAddOpenInstance(POVS_DEVICE_EXTENSION ovsExt,
                    PFILE_OBJECT fileObject)  {
     POVS_OPEN_INSTANCE instance =
-        (POVS_OPEN_INSTANCE) OvsAllocateMemory(sizeof (OVS_OPEN_INSTANCE));
+        (POVS_OPEN_INSTANCE)OvsAllocateMemoryWithTag(sizeof(OVS_OPEN_INSTANCE),
+                                                     
+ OVS_DATAPATH_POOL_TAG);
     UINT32 i;
 
     if (instance == NULL) {
@@ -508,7 +540,7 @@ OvsAddOpenInstance(POVS_DEVICE_EXTENSION ovsExt,
 
     if (ovsNumberOfOpenInstances >= OVS_MAX_OPEN_INSTANCES) {
         OvsReleaseCtrlLock();
-        OvsFreeMemory(instance);
+        OvsFreeMemoryWithTag(instance, OVS_DATAPATH_POOL_TAG);
         return STATUS_INSUFFICIENT_RESOURCES;
     }
     RtlZeroMemory(instance, sizeof (OVS_OPEN_INSTANCE)); @@ -559,7 +591,7 @@ 
OvsRemoveOpenInstance(PFILE_OBJECT fileObject)
     OvsReleaseCtrlLock();
     ASSERT(instance->eventQueue == NULL);
     ASSERT (instance->packetQueue == NULL);
-    OvsFreeMemory(instance);
+    OvsFreeMemoryWithTag(instance, OVS_DATAPATH_POOL_TAG);
 }
 
 NTSTATUS
diff --git a/datapath-windows/ovsext/Datapath.h 
b/datapath-windows/ovsext/Datapath.h
index ba31ece..863afc4 100644
--- a/datapath-windows/ovsext/Datapath.h
+++ b/datapath-windows/ovsext/Datapath.h
@@ -129,35 +129,10 @@ InitUserParamsCtx(PIRP irp,
     usrParamsCtx->outputLength = outputLength;  }
 
-static __inline NTSTATUS
-InitUserDumpState(POVS_OPEN_INSTANCE instance,
-                  POVS_MESSAGE ovsMsg)
-{
-    /* Clear the dumpState from a previous dump sequence. */
-    ASSERT(instance->dumpState.ovsMsg == NULL);
-    ASSERT(ovsMsg);
-
-    instance->dumpState.ovsMsg =
-        (POVS_MESSAGE) OvsAllocateMemory(sizeof (OVS_MESSAGE));
-    if (instance->dumpState.ovsMsg == NULL) {
-        return STATUS_NO_MEMORY;
-    }
-    RtlCopyMemory(instance->dumpState.ovsMsg, ovsMsg,
-                  sizeof *instance->dumpState.ovsMsg);
-    RtlZeroMemory(instance->dumpState.index,
-                  sizeof instance->dumpState.index);
-
-    return STATUS_SUCCESS;
-}
+NTSTATUS InitUserDumpState(POVS_OPEN_INSTANCE instance,
+                           POVS_MESSAGE ovsMsg);
 
-static __inline VOID
-FreeUserDumpState(POVS_OPEN_INSTANCE instance) -{
-    if (instance->dumpState.ovsMsg != NULL) {
-        OvsFreeMemory(instance->dumpState.ovsMsg);
-        RtlZeroMemory(&instance->dumpState, sizeof instance->dumpState);
-    }
-}
+VOID FreeUserDumpState(POVS_OPEN_INSTANCE instance);
 
 NTSTATUS OvsSetupDumpStart(POVS_USER_PARAMS_CONTEXT usrParamsCtx);
 
diff --git a/datapath-windows/ovsext/Util.h b/datapath-windows/ovsext/Util.h 
index 0303f46..0f32654 100644
--- a/datapath-windows/ovsext/Util.h
+++ b/datapath-windows/ovsext/Util.h
@@ -23,6 +23,7 @@
 #define OVS_NBL_ONLY_POOL_TAG           'OSVO'
 #define OVS_NET_BUFFER_POOL_TAG         'NSVO'
 #define OVS_OTHER_POOL_TAG              'MSVO'
+#define OVS_DATAPATH_POOL_TAG           'DSVO'
 
 VOID *OvsAllocateMemory(size_t size);
 VOID *OvsAllocateMemoryWithTag(size_t size, ULONG tag);
--
1.9.0.msysgit.0
_______________________________________________
dev mailing list
dev@openvswitch.org
https://urldefense.proofpoint.com/v2/url?u=http-3A__openvswitch.org_mailman_listinfo_dev&d=AwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=CWsgHUxi6ExLXY798tmo3LJ4e3geGYp56lkcH-5cLCY&m=DZ9NxwHwM2-ju5h2ApoXI4ixxtWhE5XOWxehunLNePA&s=6VU3DuUHj50N0JcFBsfNs9m7Wwq4Df7xvDHRXocV41Y&e=
 
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to