diff options
author | Sorin Vinturis <svinturis@cloudbasesolutions.com> | 2015-03-26 19:59:36 +0000 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2015-03-26 14:18:46 -0700 |
commit | 84726095b13af12d34161842691c3e5a05fc8d20 (patch) | |
tree | 122c58a44887f3b62a1a335a8cbee91b6e690a3f /datapath-windows/ovsext | |
parent | 48b3e646d13f96d7d4d256966ae56910a557ed19 (diff) | |
download | openvswitch-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.c | 18 | ||||
-rw-r--r-- | datapath-windows/ovsext/Util.h | 1 |
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); |