Subject: [PATCH]: Disable local bh's when grabing qdisc_tree_lock in tc_dump_tfilter

From: Patrick McHardy <[email-masked]>
Date: Sun, 08 Aug 2004 16:53:18 +0200

I missed this one when fixing locking in __qdisc_destroy.

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2004/08/08 14:15:49+02:00 [email-masked] 
#   [PKT_SCHED]: Disable local bh's when grabing qdisc_tree_lock in tc_dump_tfilter
#   
#   Signed-off-by: Patrick McHardy <[email-masked]>
# 
# net/sched/cls_api.c
#   2004/08/08 14:15:30+02:00 [email-masked] +2 -2
#   [PKT_SCHED]: Disable local bh's when grabing qdisc_tree_lock in tc_dump_tfilter
# 
diff -Nru a/net/sched/cls_api.c b/net/sched/cls_api.c
--- a/net/sched/cls_api.c	2004-08-08 14:17:46 +02:00
+++ b/net/sched/cls_api.c	2004-08-08 14:17:46 +02:00
@@ -387,7 +387,7 @@
 	if ((dev = dev_get_by_index(tcm->tcm_ifindex)) == NULL)
 		return skb->len;
 
-	read_lock(&qdisc_tree_lock);
+	read_lock_bh(&qdisc_tree_lock);
 	if (!tcm->tcm_parent)
 		q = dev->qdisc_sleeping;
 	else
@@ -444,7 +444,7 @@
 	if (cl)
 		cops->put(q, cl);
 out:
-	read_unlock(&qdisc_tree_lock);
+	read_unlock_bh(&qdisc_tree_lock);
 	dev_put(dev);
 	return skb->len;
 }