diff options
author | Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> | 2011-08-19 10:11:24 +0200 |
---|---|---|
committer | Philippe LANGLAIS <philippe.langlais@stericsson.com> | 2011-10-13 10:05:17 +0200 |
commit | 001454fc0637475a088bd82d33c53aca518816ce (patch) | |
tree | d1412513bd39093f8232f5b4f21f61742483af99 /drivers | |
parent | 31a59450487a189e6b148364c5965ad7f1982b41 (diff) |
cw1200: Fix for a BUG in cw1200_unjoin_work.
Dump was seen twice: deauthentication between scan-req and scan-res.
D/wpa_supplicant( 2443): nl80211: Event message available
D/wpa_supplicant( 2443): nl80211: New scan results available
[ 549.251159] wlan0: deauthenticated from 00:0c:e3:6b:8e:cd (Reason: 7)
D/wpa_supplicant( 2443): nl80211: Associated on 2422 MHz
D/wpa_supplicant( 2443): Received scan results (38 BSSes)
D/wpa_supplicant( 2443): nl80211: Scan results indicate BSS status with 00:0c:e3:6b:8e:cd as associated
[ 549.277404] ieee80211 phy0: cw1200_unjoin_work: Unexpected: delayed unjoin is already scheduled.
V/WifiMonitor( 1779): Even...
[ 549.291015] kernel BUG at drivers/staging/cw1200/sta.c:1139!
Fix removes BUG_ON which was added for verification-only purposes and
handles multiple DEAUTH during scan correctly.
ST-Ericsson ID: 355770
Change-Id: I671fe949555f3e31a634ee27ea237da2aeb1c83e
Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/29087
Reviewed-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/33512
Reviewed-by: Philippe LANGLAIS <philippe.langlais@stericsson.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/staging/cw1200/sta.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/staging/cw1200/sta.c b/drivers/staging/cw1200/sta.c index 055d231fc01..47608bb5ed8 100644 --- a/drivers/staging/cw1200/sta.c +++ b/drivers/staging/cw1200/sta.c @@ -1166,13 +1166,14 @@ void cw1200_unjoin_work(struct work_struct *work) mutex_lock(&priv->conf_mutex); if (unlikely(atomic_read(&priv->scan.in_progress))) { if (priv->delayed_unjoin) { - wiphy_err(priv->hw->wiphy, - "%s: Unexpected: delayed unjoin " + wiphy_dbg(priv->hw->wiphy, + "%s: Delayed unjoin " "is already scheduled.\n", __func__); - BUG_ON(1); + wsm_unlock_tx(priv); + } else { + priv->delayed_unjoin = true; } - priv->delayed_unjoin = true; mutex_unlock(&priv->conf_mutex); return; } |