[ovs-dev] [PATCH 1/7] datapath-windows: re-init the list entry in OvsDeleteVportCmdHandler()
Nithin Raju
nithin at vmware.com
Fri Oct 24 00:33:08 UTC 2014
Without this patch, the kernel crashes when it tries to cleanup a port
at unload time when a port has been previously deleted from userspace.
Crash is in OvsRemoveAndDeleteVport() when we call into
RemoveEntryList().
Signed-off-by: Nithin Raju <nithin at vmware.com>
---
datapath-windows/ovsext/Datapath.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/datapath-windows/ovsext/Datapath.c b/datapath-windows/ovsext/Datapath.c
index 281c3f6..761e74c 100644
--- a/datapath-windows/ovsext/Datapath.c
+++ b/datapath-windows/ovsext/Datapath.c
@@ -2065,7 +2065,8 @@ OvsDeleteVportCmdHandler(POVS_USER_PARAMS_CONTEXT usrParamsCtx,
static const NL_POLICY ovsVportPolicy[] = {
[OVS_VPORT_ATTR_PORT_NO] = { .type = NL_A_U32, .optional = TRUE },
- [OVS_VPORT_ATTR_NAME] = { .type = NL_A_STRING, .maxLen = IFNAMSIZ, .optional = TRUE },
+ [OVS_VPORT_ATTR_NAME] = { .type = NL_A_STRING, .maxLen = IFNAMSIZ,
+ .optional = TRUE },
};
PNL_ATTR vportAttrs[ARRAY_SIZE(ovsVportPolicy)];
@@ -2130,7 +2131,9 @@ OvsDeleteVportCmdHandler(POVS_USER_PARAMS_CONTEXT usrParamsCtx,
* "not created", i.e. we set vport->portNo = OVS_PORT_NUMBER_INVALID.
*/
RemoveEntryList(&vport->ovsNameLink);
+ InitializeListHead(&vport->ovsNameLink);
RemoveEntryList(&vport->portNoLink);
+ InitializeListHead(&vport->portNoLink);
vport->portNo = OVS_DPPORT_NUMBER_INVALID;
vport->ovsName[0] = '\0';
}
--
1.7.4.1
More information about the dev
mailing list