X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=net%2Fmac80211%2Fwme.c;h=4310e2f65661e8a663c519eded289d263d46f613;hb=ee7af8264dafa0c8c76a8dc596803966c2e29ebc;hp=07edda0b8a5c1c78fef73e9bdca5cf1dbf23abd5;hpb=e9dd54da0ba494bd86c45bdf574a6fd6ff8f2210;p=linux-2.6 diff --git a/net/mac80211/wme.c b/net/mac80211/wme.c index 07edda0b8a..4310e2f656 100644 --- a/net/mac80211/wme.c +++ b/net/mac80211/wme.c @@ -188,6 +188,9 @@ int ieee80211_ht_agg_queue_add(struct ieee80211_local *local, { int i; + /* XXX: currently broken due to cb/requeue use */ + return -EPERM; + /* prepare the filter and save it for the SW queue * matching the received HW queue */ @@ -238,12 +241,14 @@ void ieee80211_ht_agg_queue_remove(struct ieee80211_local *local, } else { struct netdev_queue *txq; spinlock_t *root_lock; + struct Qdisc *q; txq = netdev_get_tx_queue(local->mdev, agg_queue); - root_lock = qdisc_root_lock(txq->qdisc); + q = rcu_dereference(txq->qdisc); + root_lock = qdisc_lock(q); spin_lock_bh(root_lock); - qdisc_reset(txq->qdisc); + qdisc_reset(q); spin_unlock_bh(root_lock); } }