summaryrefslogtreecommitdiffstats
path: root/net/sched/cls_route.c
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2007-04-17 02:07:08 +0200
committerDavid S. Miller <davem@sunset.davemloft.net>2007-04-26 07:29:08 +0200
commitfd44de7cc1d430caef91ad9aecec9ff000fe86f8 (patch)
tree7b86a2e8623400c290c886ef83c573cdf49da3e8 /net/sched/cls_route.c
parent[NET_SCHED]: Eliminate qdisc_tree_lock (diff)
downloadlinux-fd44de7cc1d430caef91ad9aecec9ff000fe86f8.tar.xz
linux-fd44de7cc1d430caef91ad9aecec9ff000fe86f8.zip
[NET_SCHED]: ingress: switch back to using ingress_lock
Switch ingress queueing back to use ingress_lock. qdisc_lock_tree now locks both the ingress and egress qdiscs on the device. All changes to data that might be used on both ingress and egress needs to be protected by using qdisc_lock_tree instead of manually taking dev->queue_lock. Additionally the qdisc stats_lock needs to be initialized to ingress_lock for ingress qdiscs. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/cls_route.c')
-rw-r--r--net/sched/cls_route.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/sched/cls_route.c b/net/sched/cls_route.c
index e92d716c9158..cc941d0ee3a5 100644
--- a/net/sched/cls_route.c
+++ b/net/sched/cls_route.c
@@ -89,9 +89,9 @@ static __inline__ int route4_fastmap_hash(u32 id, int iif)
static inline
void route4_reset_fastmap(struct net_device *dev, struct route4_head *head, u32 id)
{
- spin_lock_bh(&dev->queue_lock);
+ qdisc_lock_tree(dev);
memset(head->fastmap, 0, sizeof(head->fastmap));
- spin_unlock_bh(&dev->queue_lock);
+ qdisc_unlock_tree(dev);
}
static inline void