From d4484c21fc07df2db17d747a06870e335b597df4 Mon Sep 17 00:00:00 2001 From: Alin Gabriel Serdean Date: Fri, 21 Dec 2018 15:55:27 +0200 Subject: datapath-windows: Fix race condition when deleting internal ports We need to hold the port lock until all the operations with a port are completed. Found by inspection. Signed-off-by: Alin Gabriel Serdean Acked-by: Ben Pfaff Acked-by: Anand Kumar --- datapath-windows/ovsext/Vport.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'datapath-windows') diff --git a/datapath-windows/ovsext/Vport.c b/datapath-windows/ovsext/Vport.c index 380870a11..e08cb90ce 100644 --- a/datapath-windows/ovsext/Vport.c +++ b/datapath-windows/ovsext/Vport.c @@ -632,13 +632,13 @@ HvDisconnectNic(POVS_SWITCH_CONTEXT switchContext, OvsRemoveAndDeleteVport(NULL, switchContext, vport, FALSE, TRUE); OvsPostVportEvent(&event); } - NdisReleaseRWLock(switchContext->dispatchLock, &lockState); if (isInternalPort) { OvsInternalAdapterDown(vport->portNo, vport->netCfgInstanceId); OvsRemoveAndDeleteVport(NULL, switchContext, vport, TRUE, TRUE); OvsPostVportEvent(&event); } + NdisReleaseRWLock(switchContext->dispatchLock, &lockState); done: VPORT_NIC_EXIT(nicParam); -- cgit v1.2.1