summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/cmd.c
diff options
context:
space:
mode:
authorEliad Peller <eliad@wizery.com>2011-12-18 20:25:42 +0200
committerLuciano Coelho <coelho@ti.com>2011-12-20 22:30:14 +0200
commit8aefffeaae5d2e10edc77c084f75dc36bcce0c68 (patch)
tree6fd639d2a43f4510cedcc0af5183b8d579415a27 /drivers/net/wireless/wl12xx/cmd.c
parenta0c7b7825e026c7acf63fd92a5182efd3aff637f (diff)
wl12xx: flush packets before stopping dev role
During sta disconnection, a deauth packet is being queued to the dev role queue. However, the dev role is being stopped before the packet was sent. Flush the tx queue before stopping the dev role. Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/cmd.c')
-rw-r--r--drivers/net/wireless/wl12xx/cmd.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/wl12xx/cmd.c b/drivers/net/wireless/wl12xx/cmd.c
index e0d21797948..25990bd38be 100644
--- a/drivers/net/wireless/wl12xx/cmd.c
+++ b/drivers/net/wireless/wl12xx/cmd.c
@@ -1835,6 +1835,9 @@ int wl12xx_stop_dev(struct wl1271 *wl, struct wl12xx_vif *wlvif)
wlvif->bss_type == BSS_TYPE_IBSS)))
return -EINVAL;
+ /* flush all pending packets */
+ wl1271_tx_work_locked(wl);
+
if (test_bit(wlvif->dev_role_id, wl->roc_map)) {
ret = wl12xx_croc(wl, wlvif->dev_role_id);
if (ret < 0)