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 08/11] datapath-windows: Added specific pool tag for 
oid code

All memory allocations within oid code have 'ASVO' 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=Zgt7ajB9JBKvuIzeflV2OMfV7prmxLskkHDn7l32FC4&s=lMXyQUZgk7Kfxo_HiYMgnid6d11UVX1RmJf2IO23uzw&e=
---
 datapath-windows/ovsext/Oid.c  | 41 +++++++++++++++++++++++++++++------------
 datapath-windows/ovsext/Oid.h  |  3 +++  datapath-windows/ovsext/Util.h |  1 +
 3 files changed, 33 insertions(+), 12 deletions(-)

diff --git a/datapath-windows/ovsext/Oid.c b/datapath-windows/ovsext/Oid.c 
index 83fa1e3..c94d17e 100644
--- a/datapath-windows/ovsext/Oid.c
+++ b/datapath-windows/ovsext/Oid.c
@@ -605,7 +605,7 @@ OvsIssueOidRequest(POVS_SWITCH_CONTEXT switchContext,
     NDIS_STATUS status;
     PNDIS_OID_REQUEST oidRequest;
     POVS_OID_CONTEXT oidContext;
-    ULONG OvsExtOidRequestId = 'ISVO';
+    ULONG OvsExtOidRequestId =          'ISVO';
 
     DBG_UNREFERENCED_PARAMETER(inputSize);
     DBG_UNREFERENCED_PARAMETER(oidInputBuffer);
@@ -617,15 +617,17 @@ OvsIssueOidRequest(POVS_SWITCH_CONTEXT switchContext,
     ASSERT(oidOutputBuffer == NULL || outputSize != 0);
     ASSERT(KeGetCurrentIrql() == PASSIVE_LEVEL);
 
-    oidRequest = OvsAllocateMemory(sizeof *oidRequest);
+    oidRequest = OvsAllocateMemoryWithTag(sizeof *oidRequest,
+                                          OVS_OID_POOL_TAG);
     if (!oidRequest) {
         status = NDIS_STATUS_RESOURCES;
         goto done;
     }
 
-    oidContext = OvsAllocateMemory(sizeof *oidContext);
+    oidContext = OvsAllocateMemoryWithTag(sizeof *oidContext,
+                                          OVS_OID_POOL_TAG);
     if (!oidContext) {
-        OvsFreeMemory(oidRequest);
+        OvsFreeMemoryWithTag(oidRequest, OVS_OID_POOL_TAG);
         status = NDIS_STATUS_RESOURCES;
         goto done;
     }
@@ -684,8 +686,8 @@ OvsIssueOidRequest(POVS_SWITCH_CONTEXT switchContext,
     status = oidContext->status;
     ASSERT(status != NDIS_STATUS_PENDING);
 
-    OvsFreeMemory(oidRequest);
-    OvsFreeMemory(oidContext);
+    OvsFreeMemoryWithTag(oidRequest, OVS_OID_POOL_TAG);
+    OvsFreeMemoryWithTag(oidContext, OVS_OID_POOL_TAG);
 
 done:
     OVS_LOG_TRACE("Exit: status %8x.", status); @@ -710,7 +712,8 @@ 
OvsQuerySwitchActivationComplete(POVS_SWITCH_CONTEXT switchContext,
     OVS_LOG_TRACE("Enter: switchContext: %p, switchActive: %p",
                   switchContext, switchActive);
 
-    switchParams = OvsAllocateMemory(sizeof *switchParams);
+    switchParams = OvsAllocateMemoryWithTag(sizeof *switchParams,
+                                            OVS_OID_POOL_TAG);
     if (!switchParams) {
         status = NDIS_STATUS_RESOURCES;
         goto done;
@@ -741,7 +744,7 @@ OvsQuerySwitchActivationComplete(POVS_SWITCH_CONTEXT 
switchContext,
         *switchActive = switchParams->IsActive;
     }
 
-    OvsFreeMemory(switchParams);
+    OvsFreeMemoryWithTag(switchParams, OVS_OID_POOL_TAG);
 
 done:
     OVS_LOG_TRACE("Exit: status %8x, switchActive: %d.", @@ -769,7 +772,7 @@ 
OvsGetPortsOnSwitch(POVS_SWITCH_CONTEXT switchContext,
     do {
         UINT32 reqdArraySize;
 
-        portArray = OvsAllocateMemory(arraySize);
+        portArray = OvsAllocateMemoryWithTag(arraySize, 
+ OVS_OID_POOL_TAG);
         if (!portArray) {
             status = NDIS_STATUS_RESOURCES;
             goto done;
@@ -794,7 +797,7 @@ OvsGetPortsOnSwitch(POVS_SWITCH_CONTEXT switchContext,
             break;
         }
 
-        OvsFreeMemory(portArray);
+        OvsFreeMemoryWithTag(portArray, OVS_OID_POOL_TAG);
         arraySize = reqdArraySize;
         if (status != NDIS_STATUS_INVALID_LENGTH) {
             break;
@@ -827,7 +830,7 @@ OvsGetNicsOnSwitch(POVS_SWITCH_CONTEXT switchContext,
     do {
         UINT32 reqdArraySize;
 
-        nicArray = OvsAllocateMemory(arraySize);
+        nicArray = OvsAllocateMemoryWithTag(arraySize, 
+ OVS_OID_POOL_TAG);
         if (!nicArray) {
             status = NDIS_STATUS_RESOURCES;
             goto done;
@@ -852,7 +855,7 @@ OvsGetNicsOnSwitch(POVS_SWITCH_CONTEXT switchContext,
             break;
         }
 
-        OvsFreeMemory(nicArray);
+        OvsFreeMemoryWithTag(nicArray, OVS_OID_POOL_TAG);
         arraySize = reqdArraySize;
         if (status != NDIS_STATUS_INVALID_LENGTH) {
             break;
@@ -863,3 +866,17 @@ done:
     OVS_LOG_TRACE("Exit: status %8x.", status);
     return status;
 }
+
+VOID OvsFreeSwitchPortsArray(PNDIS_SWITCH_PORT_ARRAY portsArray) {
+    if (portsArray) {
+        OvsFreeMemoryWithTag(portsArray, OVS_OID_POOL_TAG);
+    }
+}
+
+VOID OvsFreeSwitchNicsArray(PNDIS_SWITCH_NIC_ARRAY nicsArray) {
+    if (nicsArray) {
+        OvsFreeMemoryWithTag(nicsArray, OVS_OID_POOL_TAG);
+    }
+}
\ No newline at end of file
diff --git a/datapath-windows/ovsext/Oid.h b/datapath-windows/ovsext/Oid.h 
index 88a3d7d..ffa4d60 100644
--- a/datapath-windows/ovsext/Oid.h
+++ b/datapath-windows/ovsext/Oid.h
@@ -23,4 +23,7 @@ NDIS_STATUS OvsGetPortsOnSwitch(POVS_SWITCH_CONTEXT 
switchContext,
                                 PNDIS_SWITCH_PORT_ARRAY *portArrayOut);  
NDIS_STATUS OvsGetNicsOnSwitch(POVS_SWITCH_CONTEXT switchContext,
                                PNDIS_SWITCH_NIC_ARRAY *nicArrayOut);
+VOID OvsFreeSwitchPortsArray(PNDIS_SWITCH_PORT_ARRAY portsArray); VOID 
+OvsFreeSwitchNicsArray(PNDIS_SWITCH_NIC_ARRAY nicsArray);
+
 #endif /* __OID_H_ */
diff --git a/datapath-windows/ovsext/Util.h b/datapath-windows/ovsext/Util.h 
index c410729..115f334 100644
--- a/datapath-windows/ovsext/Util.h
+++ b/datapath-windows/ovsext/Util.h
@@ -29,6 +29,7 @@
 #define OVS_FLOW_POOL_TAG               'LSVO'
 #define OVS_VXLAN_POOL_TAG              'XSVO'
 #define OVS_IPHELPER_POOL_TAG           'HSVO'
+#define OVS_OID_POOL_TAG                'ASVO'
 
 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=Zgt7ajB9JBKvuIzeflV2OMfV7prmxLskkHDn7l32FC4&s=2XnOBNUTCgugHBZZrJ2N3Uy_-Qm-QCwMRB27_jgIvBY&e=
 
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to