Previously, the driver would enter a deadlock because
the OvsInitConfiguredSwitchNics() function would wait
till switchContext->isActivated flag is set.

Signed-off-by: Shashank Ram <[email protected]>
---
 datapath-windows/ovsext/Switch.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/datapath-windows/ovsext/Switch.c b/datapath-windows/ovsext/Switch.c
index 49711a9..bb296fa 100644
--- a/datapath-windows/ovsext/Switch.c
+++ b/datapath-windows/ovsext/Switch.c
@@ -553,6 +553,8 @@ OvsActivateSwitch(POVS_SWITCH_CONTEXT switchContext)

     ASSERT(!switchContext->isActivated);

+    switchContext->isActivated = TRUE;
+
     OVS_LOG_TRACE("Enter: activate switch %p, dpNo: %ld",
                   switchContext, switchContext->dpNo);

@@ -571,9 +573,11 @@ OvsActivateSwitch(POVS_SWITCH_CONTEXT switchContext)
         goto cleanup;
     }

-    switchContext->isActivated = TRUE;
-
 cleanup:
+    if (status != NDIS_STATUS_SUCCESS) {
+        switchContext->isActivated = FALSE;
+    }
+
     OVS_LOG_TRACE("Exit: activate switch:%p, isActivated: %s, status = %lx",
                   switchContext,
                   (switchContext->isActivated ? "TRUE" : "FALSE"), status);
--
2.6.2

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to