diff options
author | Lukasz Kucharczyk <lukasz.kucharczyk@tieto.com> | 2012-02-29 15:14:20 +0100 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@stericsson.com> | 2012-05-22 11:06:37 +0200 |
commit | 99d16921d04f0a53996e6f1afbd78762064e801f (patch) | |
tree | 91afa73b7f9335ba56de182f51797b41647ba25e | |
parent | 17e450dac2fa80cd664ea96e3709b3191ddad63c (diff) |
cw1200: reset firmware after deauthentication.
Firmware needs to be reseted after sending deuathentication
frame in AP mode in order to assure proper operation.
Without reset, some frames are dropped by firmware afterwards.
ST-Ericsson ID: 360490
ST-Ericsson FOSS-OUT ID: NA
Change-Id: I202ffb99f9c047444ec18a3df30907672e566fe0
Signed-off-by: Lukasz Kucharczyk <lukasz.kucharczyk@tieto.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/35064
Reviewed-by: Dmitry TARNYAGIN <dmitry.tarnyagin@stericsson.com>
Reviewed-by: QATOOLS
Reviewed-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com>
Tested-by: Bartosz MARKOWSKI <bartosz.markowski@tieto.com>
-rwxr-xr-x | drivers/staging/cw1200/ap.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/staging/cw1200/ap.c b/drivers/staging/cw1200/ap.c index d3c75275fae..d1dbcb759d1 100755 --- a/drivers/staging/cw1200/ap.c +++ b/drivers/staging/cw1200/ap.c @@ -79,13 +79,13 @@ int cw1200_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, entry = &priv->link_id_db[sta_priv->link_id - 1]; spin_lock_bh(&priv->ps_state_lock); - entry->status = CW1200_LINK_SOFT; + entry->status = CW1200_LINK_RESERVE; entry->timestamp = jiffies; - if (!delayed_work_pending(&priv->link_id_gc_work)) - queue_delayed_work(priv->workqueue, - &priv->link_id_gc_work, - CW1200_LINK_ID_GC_TIMEOUT); + wsm_lock_tx_async(priv); + if (queue_work(priv->workqueue, &priv->link_id_work) <= 0) + wsm_unlock_tx(priv); spin_unlock_bh(&priv->ps_state_lock); + flush_workqueue(priv->workqueue); return 0; } |