From: Lazar Alexei <[email protected]>

Stations disconnection is executed as part of wil_reset so no
need to do it in wil_down.
Removal of the disconnect operation will also preserve the lock
of wil->mutex during the whole reset flow and prevent handling of
connect event while resetting.
Set wil_status_resetting in earlier stage in the flow to prevent
double resetting call in case communication with FW fails while
bringing the interface down.

Signed-off-by: Lazar Alexei <[email protected]>
Signed-off-by: Maya Erez <[email protected]>
---
 drivers/net/wireless/ath/wil6210/main.c | 16 ++--------------
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/net/wireless/ath/wil6210/main.c 
b/drivers/net/wireless/ath/wil6210/main.c
index bbc54ee..dd0ee7f 100644
--- a/drivers/net/wireless/ath/wil6210/main.c
+++ b/drivers/net/wireless/ath/wil6210/main.c
@@ -1035,10 +1035,10 @@ int wil_up(struct wil6210_priv *wil)
 
 int __wil_down(struct wil6210_priv *wil)
 {
-       int rc;
-
        WARN_ON(!mutex_is_locked(&wil->mutex));
 
+       set_bit(wil_status_resetting, wil->status);
+
        if (wil->platform_ops.bus_request)
                wil->platform_ops.bus_request(wil->platform_handle, 0);
 
@@ -1064,18 +1064,6 @@ int __wil_down(struct wil6210_priv *wil)
                wil->scan_request = NULL;
        }
 
-       if (test_bit(wil_status_fwconnected, wil->status) ||
-           test_bit(wil_status_fwconnecting, wil->status)) {
-
-               mutex_unlock(&wil->mutex);
-               rc = wmi_call(wil, WMI_DISCONNECT_CMDID, NULL, 0,
-                             WMI_DISCONNECT_EVENTID, NULL, 0,
-                             WIL6210_DISCONNECT_TO_MS);
-               mutex_lock(&wil->mutex);
-               if (rc)
-                       wil_err(wil, "timeout waiting for disconnect\n");
-       }
-
        wil_reset(wil, false);
 
        return 0;
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to