diff options
author | Ivo van Doorn <IvDoorn@gmail.com> | 2011-01-30 13:24:05 +0100 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-01-31 21:06:25 +0100 |
commit | 0439f5367c8d8bb2ebaca8d7329f51f3148b2fb2 (patch) | |
tree | dee1b60792da49cd903266ec8daf90516c604c49 /drivers/net/wireless/rt2x00/rt2x00.h | |
parent | rt2x00: Kill all tasklets during device removal (diff) | |
download | linux-0439f5367c8d8bb2ebaca8d7329f51f3148b2fb2.tar.xz linux-0439f5367c8d8bb2ebaca8d7329f51f3148b2fb2.zip |
rt2x00: Move TX/RX work into dedicated workqueue
The TX/RX work structures must be able to run independently
of other workqueues. This is because mac80211 might use
the flush() callback function from various context, which depends
on the TX/RX work to complete while the main thread is blocked
(until the the TX queues are empty).
This should reduce the number of 'Queue %d failed to flush' warnings.
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00.h')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h index 7661e4f60ddc..39bc2faf1793 100644 --- a/drivers/net/wireless/rt2x00/rt2x00.h +++ b/drivers/net/wireless/rt2x00/rt2x00.h @@ -860,6 +860,13 @@ struct rt2x00_dev { */ struct ieee80211_low_level_stats low_level_stats; + /** + * Work queue for all work which should not be placed + * on the mac80211 workqueue (because of dependencies + * between various work structures). + */ + struct workqueue_struct *workqueue; + /* * Scheduled work. * NOTE: intf_work will use ieee80211_iterate_active_interfaces() |