netdev
[Top] [All Lists]

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

To: "David S. Miller" <davem@xxxxxxxxxx>
Subject: [PATCH]: Disable local bh's when grabing qdisc_tree_lock in tc_dump_tfilter
From: Patrick McHardy <kaber@xxxxxxxxx>
Date: Sun, 08 Aug 2004 16:53:18 +0200
Cc: netdev@xxxxxxxxxxx
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040413 Debian/1.6-5
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 kaber@xxxxxxxxxxxxxxxxxx 
#   [PKT_SCHED]: Disable local bh's when grabing qdisc_tree_lock in 
tc_dump_tfilter
#   
#   Signed-off-by: Patrick McHardy <kaber@xxxxxxxxx>
# 
# net/sched/cls_api.c
#   2004/08/08 14:15:30+02:00 kaber@xxxxxxxxxxxxxxxxxx +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;
 }
<Prev in Thread] Current Thread [Next in Thread>