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 <nit...@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 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev