aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/mac80211/wme.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/net/mac80211/wme.c b/net/mac80211/wme.c
index 425aa8588ea0..8cc036decc82 100644
--- a/net/mac80211/wme.c
+++ b/net/mac80211/wme.c
@@ -25,7 +25,7 @@ const int ieee802_1d_to_ac[8] = { 2, 3, 3, 2, 1, 1, 0, 0 };
25 25
26struct ieee80211_sched_data 26struct ieee80211_sched_data
27{ 27{
28 unsigned long qdisc_pool; 28 unsigned long qdisc_pool[BITS_TO_LONGS(TC_80211_MAX_QUEUES)];
29 struct tcf_proto *filter_list; 29 struct tcf_proto *filter_list;
30 struct Qdisc *queues[TC_80211_MAX_QUEUES]; 30 struct Qdisc *queues[TC_80211_MAX_QUEUES];
31 struct sk_buff_head requeued[TC_80211_MAX_QUEUES]; 31 struct sk_buff_head requeued[TC_80211_MAX_QUEUES];
@@ -158,7 +158,7 @@ static int wme_qdiscop_enqueue(struct sk_buff *skb, struct Qdisc* qd)
158 if (sta) { 158 if (sta) {
159 int ampdu_queue = sta->tid_to_tx_q[tid]; 159 int ampdu_queue = sta->tid_to_tx_q[tid];
160 if ((ampdu_queue < local->hw.queues) && 160 if ((ampdu_queue < local->hw.queues) &&
161 test_bit(ampdu_queue, &q->qdisc_pool)) { 161 test_bit(ampdu_queue, q->qdisc_pool)) {
162 queue = ampdu_queue; 162 queue = ampdu_queue;
163 pkt_data->flags |= IEEE80211_TXPD_AMPDU; 163 pkt_data->flags |= IEEE80211_TXPD_AMPDU;
164 } else { 164 } else {
@@ -191,7 +191,7 @@ static int wme_qdiscop_enqueue(struct sk_buff *skb, struct Qdisc* qd)
191 if (sta) { 191 if (sta) {
192 int ampdu_queue = sta->tid_to_tx_q[tid]; 192 int ampdu_queue = sta->tid_to_tx_q[tid];
193 if ((ampdu_queue < local->hw.queues) && 193 if ((ampdu_queue < local->hw.queues) &&
194 test_bit(ampdu_queue, &q->qdisc_pool)) { 194 test_bit(ampdu_queue, q->qdisc_pool)) {
195 queue = ampdu_queue; 195 queue = ampdu_queue;
196 pkt_data->flags |= IEEE80211_TXPD_AMPDU; 196 pkt_data->flags |= IEEE80211_TXPD_AMPDU;
197 } else { 197 } else {
@@ -272,7 +272,7 @@ static struct sk_buff *wme_qdiscop_dequeue(struct Qdisc* qd)
272 &local->state[queue])) || 272 &local->state[queue])) ||
273 (test_bit(IEEE80211_LINK_STATE_PENDING, 273 (test_bit(IEEE80211_LINK_STATE_PENDING,
274 &local->state[queue])) || 274 &local->state[queue])) ||
275 (!test_bit(queue, &q->qdisc_pool))) 275 (!test_bit(queue, q->qdisc_pool)))
276 continue; 276 continue;
277 277
278 /* there is space - try and get a frame */ 278 /* there is space - try and get a frame */
@@ -396,7 +396,7 @@ static int wme_qdiscop_init(struct Qdisc *qd, struct nlattr *opt)
396 396
397 /* reserve all legacy QoS queues */ 397 /* reserve all legacy QoS queues */
398 for (i = 0; i < min(IEEE80211_TX_QUEUE_DATA4, queues); i++) 398 for (i = 0; i < min(IEEE80211_TX_QUEUE_DATA4, queues); i++)
399 set_bit(i, &q->qdisc_pool); 399 set_bit(i, q->qdisc_pool);
400 400
401 return err; 401 return err;
402} 402}
@@ -657,7 +657,7 @@ int ieee80211_ht_agg_queue_add(struct ieee80211_local *local,
657 657
658 /* try to get a Qdisc from the pool */ 658 /* try to get a Qdisc from the pool */
659 for (i = IEEE80211_TX_QUEUE_BEACON; i < local->hw.queues; i++) 659 for (i = IEEE80211_TX_QUEUE_BEACON; i < local->hw.queues; i++)
660 if (!test_and_set_bit(i, &q->qdisc_pool)) { 660 if (!test_and_set_bit(i, q->qdisc_pool)) {
661 ieee80211_stop_queue(local_to_hw(local), i); 661 ieee80211_stop_queue(local_to_hw(local), i);
662 sta->tid_to_tx_q[tid] = i; 662 sta->tid_to_tx_q[tid] = i;
663 663
@@ -668,9 +668,9 @@ int ieee80211_ht_agg_queue_add(struct ieee80211_local *local,
668#ifdef CONFIG_MAC80211_HT_DEBUG 668#ifdef CONFIG_MAC80211_HT_DEBUG
669 if (net_ratelimit()) 669 if (net_ratelimit())
670 printk(KERN_DEBUG "allocated aggregation queue" 670 printk(KERN_DEBUG "allocated aggregation queue"
671 " %d tid %d addr %s pool=0x%lX\n", 671 " %d tid %d addr %s pool=0x%lX",
672 i, tid, print_mac(mac, sta->addr), 672 i, tid, print_mac(mac, sta->addr),
673 q->qdisc_pool); 673 q->qdisc_pool[0]);
674#endif /* CONFIG_MAC80211_HT_DEBUG */ 674#endif /* CONFIG_MAC80211_HT_DEBUG */
675 return 0; 675 return 0;
676 } 676 }
@@ -690,7 +690,7 @@ void ieee80211_ht_agg_queue_remove(struct ieee80211_local *local,
690 int agg_queue = sta->tid_to_tx_q[tid]; 690 int agg_queue = sta->tid_to_tx_q[tid];
691 691
692 /* return the qdisc to the pool */ 692 /* return the qdisc to the pool */
693 clear_bit(agg_queue, &q->qdisc_pool); 693 clear_bit(agg_queue, q->qdisc_pool);
694 sta->tid_to_tx_q[tid] = local->hw.queues; 694 sta->tid_to_tx_q[tid] = local->hw.queues;
695 695
696 if (requeue) 696 if (requeue)