Merge "wil6210: Improve AP stop handling"
This commit is contained in:
commit
2dfa6e303f
2 changed files with 11 additions and 2 deletions
|
@ -1414,6 +1414,8 @@ static int wil_cfg80211_stop_ap(struct wiphy *wiphy,
|
||||||
wil6210_bus_request(wil, WIL_DEFAULT_BUS_REQUEST_KBPS);
|
wil6210_bus_request(wil, WIL_DEFAULT_BUS_REQUEST_KBPS);
|
||||||
wil_set_recovery_state(wil, fw_recovery_idle);
|
wil_set_recovery_state(wil, fw_recovery_idle);
|
||||||
|
|
||||||
|
set_bit(wil_status_resetting, wil->status);
|
||||||
|
|
||||||
mutex_lock(&wil->mutex);
|
mutex_lock(&wil->mutex);
|
||||||
|
|
||||||
wmi_pcp_stop(wil);
|
wmi_pcp_stop(wil);
|
||||||
|
|
|
@ -518,16 +518,16 @@ static void wmi_evt_connect(struct wil6210_priv *wil, int id, void *d, int len)
|
||||||
assoc_resp_ielen = 0;
|
assoc_resp_ielen = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
mutex_lock(&wil->mutex);
|
|
||||||
if (test_bit(wil_status_resetting, wil->status) ||
|
if (test_bit(wil_status_resetting, wil->status) ||
|
||||||
!test_bit(wil_status_fwready, wil->status)) {
|
!test_bit(wil_status_fwready, wil->status)) {
|
||||||
wil_err(wil, "status_resetting, cancel connect event, CID %d\n",
|
wil_err(wil, "status_resetting, cancel connect event, CID %d\n",
|
||||||
evt->cid);
|
evt->cid);
|
||||||
mutex_unlock(&wil->mutex);
|
|
||||||
/* no need for cleanup, wil_reset will do that */
|
/* no need for cleanup, wil_reset will do that */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mutex_lock(&wil->mutex);
|
||||||
|
|
||||||
if ((wdev->iftype == NL80211_IFTYPE_STATION) ||
|
if ((wdev->iftype == NL80211_IFTYPE_STATION) ||
|
||||||
(wdev->iftype == NL80211_IFTYPE_P2P_CLIENT)) {
|
(wdev->iftype == NL80211_IFTYPE_P2P_CLIENT)) {
|
||||||
if (!test_bit(wil_status_fwconnecting, wil->status)) {
|
if (!test_bit(wil_status_fwconnecting, wil->status)) {
|
||||||
|
@ -631,6 +631,13 @@ static void wmi_evt_disconnect(struct wil6210_priv *wil, int id,
|
||||||
|
|
||||||
wil->sinfo_gen++;
|
wil->sinfo_gen++;
|
||||||
|
|
||||||
|
if (test_bit(wil_status_resetting, wil->status) ||
|
||||||
|
!test_bit(wil_status_fwready, wil->status)) {
|
||||||
|
wil_err(wil, "status_resetting, cancel disconnect event\n");
|
||||||
|
/* no need for cleanup, wil_reset will do that */
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
mutex_lock(&wil->mutex);
|
mutex_lock(&wil->mutex);
|
||||||
wil6210_disconnect(wil, evt->bssid, reason_code, true);
|
wil6210_disconnect(wil, evt->bssid, reason_code, true);
|
||||||
mutex_unlock(&wil->mutex);
|
mutex_unlock(&wil->mutex);
|
||||||
|
|
Loading…
Add table
Reference in a new issue