diff options
author | Sorin Vinturis <svinturis@cloudbasesolutions.com> | 2015-07-10 08:26:51 +0000 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2015-07-15 08:53:32 -0700 |
commit | f18390b7fc36f160e163e4b24516e42598426cfb (patch) | |
tree | 6cafc4dd8f5802936e89cae8b621d2df2dac37ae /datapath-windows/ovsext | |
parent | 210045a4b42f34c15297542f3cf50bc60596d7c2 (diff) | |
download | openvswitch-f18390b7fc36f160e163e4b24516e42598426cfb.tar.gz |
datapath-windows: Solved BSOD when cleaning up the VXLAN tunnel
When removing vport also remove the vxlan tunnel port.
Signed-off-by: Sorin Vinturis <svinturis@cloudbasesolutions.com>
Reported-by: Sorin Vinturis <svinturis@cloudbasesolutions.com>
Reported-at: https://github.com/openvswitch/ovs-issues/issues/94
Acked-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'datapath-windows/ovsext')
-rw-r--r-- | datapath-windows/ovsext/Vport.c | 6 | ||||
-rw-r--r-- | datapath-windows/ovsext/Vxlan.c | 6 |
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; } |