diff options
author | Arik Nemtsov <arik@wizery.com> | 2012-05-18 07:46:39 +0300 |
---|---|---|
committer | Luciano Coelho <coelho@ti.com> | 2012-06-06 19:28:05 +0300 |
commit | 2c38849f4a247673c8203a569444042e32d82410 (patch) | |
tree | 86b41dd4670f9d1ffa9997cc43ca4565a5050c2b /drivers/net/wireless/ti/wlcore/tx.h | |
parent | 6639611467f34038aa63c5cb9f8d9e48171d6022 (diff) |
wlcore: stop queues on Tx flush
Stop network queues during Tx flush, and also drop other internal
mac80211 packets (mgmt) that may arrive when the queues are stopped.
When flush is done all driver queues are clear, forcefully if needed.
Protect the Tx flush operation with a new mutex, to prevent concurrency
that can mess us queue state.
Based on a patch by Eliad Peller <eliad@wizery.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
Diffstat (limited to 'drivers/net/wireless/ti/wlcore/tx.h')
-rw-r--r-- | drivers/net/wireless/ti/wlcore/tx.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/wireless/ti/wlcore/tx.h b/drivers/net/wireless/ti/wlcore/tx.h index 6bf695681762..e058a55f533d 100644 --- a/drivers/net/wireless/ti/wlcore/tx.h +++ b/drivers/net/wireless/ti/wlcore/tx.h @@ -187,6 +187,7 @@ struct wl1271_tx_hw_res_if { enum wlcore_queue_stop_reason { WLCORE_QUEUE_STOP_REASON_WATERMARK, WLCORE_QUEUE_STOP_REASON_FW_RESTART, + WLCORE_QUEUE_STOP_REASON_FLUSH, }; static inline int wl1271_tx_get_queue(int queue) |