diff options
author | Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> | 2011-08-11 10:45:34 +0200 |
---|---|---|
committer | Philippe LANGLAIS <philippe.langlais@stericsson.com> | 2011-10-13 10:01:39 +0200 |
commit | d5a3fa778b5d9e7e15f98f316d0aaff79d1a4843 (patch) | |
tree | eedb239bb0969b5843adca21564d949d6916c57b /drivers/staging/cw1200/ap.c | |
parent | a110b4f06c29a3b5e70d74bcd0144000646bd061 (diff) |
cw1200: Syncing join status by wsm_tx_lock().
All operations changing join_status should be executed with
wsm_tx_lock() held.
Change-Id: Iadea249b080f1d7c090868c527ff78eecb53a26a
Signed-off-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/28595
Tested-by: Janusz DZIEDZIC <janusz.dziedzic@tieto.com>
Reviewed-by: Janusz DZIEDZIC <janusz.dziedzic@tieto.com>
Reviewed-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/28697
Tested-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/33505
Reviewed-by: Philippe LANGLAIS <philippe.langlais@stericsson.com>
Diffstat (limited to 'drivers/staging/cw1200/ap.c')
-rwxr-xr-x | drivers/staging/cw1200/ap.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/staging/cw1200/ap.c b/drivers/staging/cw1200/ap.c index 362a5560116..6fe254802c0 100755 --- a/drivers/staging/cw1200/ap.c +++ b/drivers/staging/cw1200/ap.c @@ -76,7 +76,9 @@ int cw1200_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, reset.link_id = sta_priv->link_id; priv->link_id_map &= ~BIT(sta_priv->link_id); sta_priv->link_id = 0; + wsm_lock_tx(priv); WARN_ON(wsm_reset(priv, &reset)); + wsm_unlock_tx(priv); } return 0; } @@ -676,10 +678,12 @@ static int cw1200_update_beaconing(struct cw1200_common *priv) if (priv->join_status != CW1200_JOIN_STATUS_AP || priv->beacon_int != conf->beacon_int) { ap_printk(KERN_DEBUG "ap restarting\n"); + wsm_lock_tx(priv); if (priv->join_status != CW1200_JOIN_STATUS_PASSIVE) WARN_ON(wsm_reset(priv, &reset)); priv->join_status = CW1200_JOIN_STATUS_PASSIVE; WARN_ON(cw1200_start_ap(priv)); + wsm_unlock_tx(priv); } else ap_printk(KERN_DEBUG "ap started join_status: %d\n", priv->join_status); |