diff options
author | Eliad Peller <eliad@wizery.com> | 2011-12-18 20:25:42 +0200 |
---|---|---|
committer | Luciano Coelho <coelho@ti.com> | 2011-12-20 22:30:14 +0200 |
commit | 8aefffeaae5d2e10edc77c084f75dc36bcce0c68 (patch) | |
tree | 6fd639d2a43f4510cedcc0af5183b8d579415a27 /drivers | |
parent | a0c7b7825e026c7acf63fd92a5182efd3aff637f (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')
-rw-r--r-- | drivers/net/wireless/wl12xx/cmd.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/wireless/wl12xx/cmd.c b/drivers/net/wireless/wl12xx/cmd.c index e0d217979485..25990bd38be6 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) |