DORMANTno replies

[PATCH]: wme qdisc locking tweak...

From: David Miller <davem@davemloft.net>
Date: 2008-08-03 06:54:50
Also in: linux-wireless
Subsystem: mac80211, the rest · Maintainers: Johannes Berg, Linus Torvalds

This is as a result of what was discovered while fixing:

http://marc.info/?l=linux-netdev&m=121763401922311&w=2

I've checked this into net-2.6

--------------------

mac80211: Use queue_lock() in ieee80211_ht_agg_queue_remove().

qdisc_root_lock() is only %100 safe to use when the RTNL
semaphore is held.

Signed-off-by: David S. Miller <davem@davemloft.net>
---
 net/mac80211/wme.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/net/mac80211/wme.c b/net/mac80211/wme.c
index 28437f0..4310e2f 100644
--- a/net/mac80211/wme.c
+++ b/net/mac80211/wme.c
@@ -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);
 	}
 }
-- 
1.5.6.GIT
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help