summaryrefslogtreecommitdiff
path: root/datapath-windows/ovsext
diff options
context:
space:
mode:
authorSorin Vinturis <svinturis@cloudbasesolutions.com>2015-03-26 19:59:36 +0000
committerBen Pfaff <blp@nicira.com>2015-03-26 14:18:46 -0700
commit84726095b13af12d34161842691c3e5a05fc8d20 (patch)
tree122c58a44887f3b62a1a335a8cbee91b6e690a3f /datapath-windows/ovsext
parent48b3e646d13f96d7d4d256966ae56910a557ed19 (diff)
downloadopenvswitch-84726095b13af12d34161842691c3e5a05fc8d20.tar.gz
datapath-windows: Added specific pool tag for event code
All memory allocations within event code have 'ESVO' pool tag. Signed-off-by: Sorin Vinturis <svinturis@cloudbasesolutions.com> Reported-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Reported-at: https://github.com/openvswitch/ovs-issues/issues/56 Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Acked-by: Eitan Eliahu <eliahue@vmware.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'datapath-windows/ovsext')
-rw-r--r--datapath-windows/ovsext/Event.c18
-rw-r--r--datapath-windows/ovsext/Util.h1
2 files changed, 11 insertions, 8 deletions
diff --git a/datapath-windows/ovsext/Event.c b/datapath-windows/ovsext/Event.c
index 00f461609..cca9575b7 100644
--- a/datapath-windows/ovsext/Event.c
+++ b/datapath-windows/ovsext/Event.c
@@ -96,9 +96,9 @@ OvsCleanupEvent(POVS_OPEN_INSTANCE instance)
LIST_FORALL_SAFE(&queue->elemList, link, next) {
elem = CONTAINING_RECORD(link, OVS_EVENT_QUEUE_ELEM, link);
- OvsFreeMemory(elem);
+ OvsFreeMemoryWithTag(elem, OVS_EVENT_POOL_TAG);
}
- OvsFreeMemory(queue);
+ OvsFreeMemoryWithTag(queue, OVS_EVENT_POOL_TAG);
}
}
@@ -139,7 +139,8 @@ OvsPostEvent(UINT32 portNo,
portNo == OVS_DEFAULT_PORT_NO) {
queue->pollAll = TRUE;
} else {
- elem = (POVS_EVENT_QUEUE_ELEM)OvsAllocateMemory(sizeof(*elem));
+ elem = (POVS_EVENT_QUEUE_ELEM)OvsAllocateMemoryWithTag(
+ sizeof(*elem), OVS_EVENT_POOL_TAG);
if (elem == NULL) {
queue->pollAll = TRUE;
} else {
@@ -158,7 +159,7 @@ OvsPostEvent(UINT32 portNo,
LIST_FORALL_SAFE(&queue->elemList, curr, next) {
RemoveEntryList(curr);
elem = CONTAINING_RECORD(curr, OVS_EVENT_QUEUE_ELEM, link);
- OvsFreeMemory(elem);
+ OvsFreeMemoryWithTag(elem, OVS_EVENT_POOL_TAG);
}
queue->numElems = 0;
}
@@ -243,7 +244,8 @@ OvsSubscribeEventIoctl(PFILE_OBJECT fileObject,
}
if (request->subscribe) {
- queue = (POVS_EVENT_QUEUE)OvsAllocateMemory(sizeof (OVS_EVENT_QUEUE));
+ queue = (POVS_EVENT_QUEUE)OvsAllocateMemoryWithTag(
+ sizeof(OVS_EVENT_QUEUE), OVS_EVENT_POOL_TAG);
if (queue == NULL) {
status = STATUS_NO_MEMORY;
OVS_LOG_WARN("Fail to allocate event queue");
@@ -284,9 +286,9 @@ done_event_subscribe:
}
LIST_FORALL_SAFE(&queue->elemList, link, next) {
elem = CONTAINING_RECORD(link, OVS_EVENT_QUEUE_ELEM, link);
- OvsFreeMemory(elem);
+ OvsFreeMemoryWithTag(elem, OVS_EVENT_POOL_TAG);
}
- OvsFreeMemory(queue);
+ OvsFreeMemoryWithTag(queue, OVS_EVENT_POOL_TAG);
} else {
OvsReleaseEventQueueLock();
}
@@ -446,7 +448,7 @@ OvsRemoveEventEntry(POVS_OPEN_INSTANCE instance,
elem = (POVS_EVENT_QUEUE_ELEM)RemoveHeadList(&queue->elemList);
entry->portNo = elem->portNo;
entry->status = elem->status;
- OvsFreeMemory(elem);
+ OvsFreeMemoryWithTag(elem, OVS_EVENT_POOL_TAG);
queue->numElems--;
status = STATUS_SUCCESS;
}
diff --git a/datapath-windows/ovsext/Util.h b/datapath-windows/ovsext/Util.h
index 6a9c16994..78112889a 100644
--- a/datapath-windows/ovsext/Util.h
+++ b/datapath-windows/ovsext/Util.h
@@ -25,6 +25,7 @@
#define OVS_OTHER_POOL_TAG 'MSVO'
#define OVS_MDL_POOL_TAG 'BSVO'
#define OVS_DATAPATH_POOL_TAG 'DSVO'
+#define OVS_EVENT_POOL_TAG 'ESVO'
VOID *OvsAllocateMemory(size_t size);
VOID *OvsAllocateMemoryWithTag(size_t size, ULONG tag);