summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--datapath-windows/ovsext/Vport.c6
-rw-r--r--datapath-windows/ovsext/Vxlan.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/datapath-windows/ovsext/Vport.c b/datapath-windows/ovsext/Vport.c
index 43154641f..d692a6dc7 100644
--- a/datapath-windows/ovsext/Vport.c
+++ b/datapath-windows/ovsext/Vport.c
@@ -2531,6 +2531,12 @@ OvsTunnelVportPendingRemove(PVOID context,
RemoveEntryList(&vport->ovsNameLink);
RemoveEntryList(&vport->portNoLink);
RemoveEntryList(&vport->tunnelVportLink);
+
+ if (vport->priv) {
+ OvsFreeMemoryWithTag(vport->priv, OVS_VXLAN_POOL_TAG);
+ vport->priv = NULL;
+ }
+
OvsFreeMemoryWithTag(vport, OVS_VPORT_POOL_TAG);
NdisReleaseRWLock(switchContext->dispatchLock, &lockState);
diff --git a/datapath-windows/ovsext/Vxlan.c b/datapath-windows/ovsext/Vxlan.c
index f43805aa3..b84c1d0b4 100644
--- a/datapath-windows/ovsext/Vxlan.c
+++ b/datapath-windows/ovsext/Vxlan.c
@@ -154,11 +154,11 @@ OvsCleanupVxlanTunnel(PIRP irp,
vxlanPort->filterID,
callback,
tunnelContext);
+ } else {
+ OvsFreeMemoryWithTag(vport->priv, OVS_VXLAN_POOL_TAG);
+ vport->priv = NULL;
}
- OvsFreeMemoryWithTag(vport->priv, OVS_VXLAN_POOL_TAG);
- vport->priv = NULL;
-
return status;
}