aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/tx.h
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2011-04-18 14:15:28 +0300
committerLuciano Coelho <coelho@ti.com>2011-05-02 10:31:28 +0300
commit7dece1c8e1044287287d44ac183a946333b55fc3 (patch)
tree82330386e96e8292bdea78301af98c047eb8a51c /drivers/net/wireless/wl12xx/tx.h
parent2dc5a5c2c656b9029a0e635bb3a1cbcfbcb4ca5c (diff)
downloadkernel_samsung_smdk4412-7dece1c8e1044287287d44ac183a946333b55fc3.zip
kernel_samsung_smdk4412-7dece1c8e1044287287d44ac183a946333b55fc3.tar.gz
kernel_samsung_smdk4412-7dece1c8e1044287287d44ac183a946333b55fc3.tar.bz2
wl12xx: fix race condition during recovery in AP mode
When operating as AP, the TX queues are not stopped when we start recovery. mac80211 is notified only after the fact. When there is pending TX, it will be queued even after the FW is down. This leads to situations where the TX queues are stopped (because of the TX-watermark mechanism), and are never woken up when we return from recovery. Fix this by explicitly stopping the TX queues when before initiating recovery. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/wl12xx/tx.h')
-rw-r--r--drivers/net/wireless/wl12xx/tx.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wireless/wl12xx/tx.h b/drivers/net/wireless/wl12xx/tx.h
index fc7835c..832f925 100644
--- a/drivers/net/wireless/wl12xx/tx.h
+++ b/drivers/net/wireless/wl12xx/tx.h
@@ -185,7 +185,7 @@ static inline int wl1271_tx_get_queue(int queue)
void wl1271_tx_work(struct work_struct *work);
void wl1271_tx_work_locked(struct wl1271 *wl);
void wl1271_tx_complete(struct wl1271 *wl);
-void wl1271_tx_reset(struct wl1271 *wl);
+void wl1271_tx_reset(struct wl1271 *wl, bool reset_tx_queues);
void wl1271_tx_flush(struct wl1271 *wl);
u8 wl1271_rate_to_idx(int rate, enum ieee80211_band band);
u32 wl1271_tx_enabled_rates_get(struct wl1271 *wl, u32 rate_set);