From d162a2f1eb72e123e807644672425c287cc7c3d6 Mon Sep 17 00:00:00 2001 From: stephen hemminger Date: Tue, 10 Nov 2009 07:54:49 +0000 Subject: [PATCH] --- yaml --- r: 171493 b: refs/heads/master c: f1e9016da6d0f16551d90085758ae45d26826118 h: refs/heads/master i: 171491: b4da4784f90f8cd1d13611a8ca2a08dc0cc8d238 v: v3 --- [refs] | 2 +- trunk/net/sched/sch_api.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 80005bc8ceee..8b4b64f123c0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9e067597ee0e51a07bc158e9e2703ca676920e8b +refs/heads/master: f1e9016da6d0f16551d90085758ae45d26826118 diff --git a/trunk/net/sched/sch_api.c b/trunk/net/sched/sch_api.c index 1acfd29cc826..876ba4bb6ae9 100644 --- a/trunk/net/sched/sch_api.c +++ b/trunk/net/sched/sch_api.c @@ -1279,9 +1279,10 @@ static int tc_dump_qdisc(struct sk_buff *skb, struct netlink_callback *cb) s_idx = cb->args[0]; s_q_idx = q_idx = cb->args[1]; - read_lock(&dev_base_lock); + + rcu_read_lock(); idx = 0; - for_each_netdev(&init_net, dev) { + for_each_netdev_rcu(&init_net, dev) { struct netdev_queue *dev_queue; if (idx < s_idx) @@ -1302,7 +1303,7 @@ static int tc_dump_qdisc(struct sk_buff *skb, struct netlink_callback *cb) } done: - read_unlock(&dev_base_lock); + rcu_read_unlock(); cb->args[0] = idx; cb->args[1] = q_idx;