diff options
author | Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> | 2014-10-28 16:50:08 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-10-30 15:26:50 -0400 |
commit | b516fcc5542d41041156b8e5f93f47cbb603c4b7 (patch) | |
tree | 069bbaf83202f02857d068f30c247de475a50863 /drivers/net/wireless/ath/wil6210/cfg80211.c | |
parent | 48516298edb4260748c52064f828319c3bb15536 (diff) | |
download | lwn-b516fcc5542d41041156b8e5f93f47cbb603c4b7.tar.gz lwn-b516fcc5542d41041156b8e5f93f47cbb603c4b7.zip |
wil6210: prevent double disconnect command issuing
Disconnect flow may be invoked either from upper layer request,
or from event reported by the firmware.
In case of firmware event, driver need to release resources for the station but
not send another disconnect WMI command.
In case of upper layer request, WMI_DISCONNECT_STA_CMDID command need to
be issued for the firmware to perform disconnect on the MAC layer. Eventually,
event is expected to confirm MAC disconnect, but it is better to not wait for
firmware event and release station resources immediately. FW may fail to
report disconnect for various reasons, so one could not rely on event always reported.
Introduce parameter to distinguish 2 cases above to prevent double WMI command
issuing.
Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/wil6210/cfg80211.c')
-rw-r--r-- | drivers/net/wireless/ath/wil6210/cfg80211.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/wil6210/cfg80211.c b/drivers/net/wireless/ath/wil6210/cfg80211.c index d9f4b30dd343..4248fb3352d2 100644 --- a/drivers/net/wireless/ath/wil6210/cfg80211.c +++ b/drivers/net/wireless/ath/wil6210/cfg80211.c @@ -797,7 +797,7 @@ static int wil_cfg80211_del_station(struct wiphy *wiphy, struct wil6210_priv *wil = wiphy_to_wil(wiphy); mutex_lock(&wil->mutex); - wil6210_disconnect(wil, mac); + wil6210_disconnect(wil, mac, false); mutex_unlock(&wil->mutex); return 0; |