aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/main.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-03-23 12:28:37 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-03-27 20:13:21 -0400
commit2a577d98712a284a612dd51d69db5cb989810dc2 (patch)
treec2e667d92d280d404dd964548aefedd43996645c /net/mac80211/main.c
parentf0e72851f7ad108fed20426b46a18ab5fcd5729f (diff)
mac80211: rework the pending packets code
The pending packets code is quite incomprehensible, uses memory barriers nobody really understands, etc. This patch reworks it entirely, using the queue spinlock, proper stop bits and the skb queues themselves to indicate whether packets are pending or not (rather than a separate variable like before). Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Reviewed-by: Luis R. Rodriguez <lrodriguez@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/main.c')
-rw-r--r--net/mac80211/main.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index dac68d476bff..a7430e98c531 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -781,6 +781,8 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,
781 781
782 sta_info_init(local); 782 sta_info_init(local);
783 783
784 for (i = 0; i < IEEE80211_MAX_QUEUES; i++)
785 skb_queue_head_init(&local->pending[i]);
784 tasklet_init(&local->tx_pending_tasklet, ieee80211_tx_pending, 786 tasklet_init(&local->tx_pending_tasklet, ieee80211_tx_pending,
785 (unsigned long)local); 787 (unsigned long)local);
786 tasklet_disable(&local->tx_pending_tasklet); 788 tasklet_disable(&local->tx_pending_tasklet);