summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukasz Kucharczyk <lukasz.kucharczyk@tieto.com>2012-02-29 15:14:20 +0100
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:06:37 +0200
commit99d16921d04f0a53996e6f1afbd78762064e801f (patch)
tree91afa73b7f9335ba56de182f51797b41647ba25e
parent17e450dac2fa80cd664ea96e3709b3191ddad63c (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-xdrivers/staging/cw1200/ap.c10
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;
}