]> err.no Git - linux-2.6/blobdiff - net/mac80211/wme.c
mac80211: Use queue_lock() in ieee80211_ht_agg_queue_remove().
[linux-2.6] / net / mac80211 / wme.c
index 28437f0001db04946b49c330c172b423e92d0913..4310e2f65661e8a663c519eded289d263d46f613 100644 (file)
@@ -241,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);
        }
 }