From ec813616d8bd3fa599ff014a45779faa719d47fd Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Wed, 4 Nov 2009 05:23:31 -0800 Subject: [PATCH] --- yaml --- r: 171155 b: refs/heads/master c: d0075634cf9d288988f57392a1f132d2053af961 h: refs/heads/master i: 171153: d12436c78b7d8ff7bd5a20710e4e1352bd5855e8 171151: 4ae4623b8f5f416593d42e5e63f1d5d40a66c53a v: v3 --- [refs] | 2 +- trunk/net/sched/em_meta.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index c41f88b0d8b8..60b8ee4b6d78 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c7079857cd89cb5bc686df1d441db8ef0137abf1 +refs/heads/master: d0075634cf9d288988f57392a1f132d2053af961 diff --git a/trunk/net/sched/em_meta.c b/trunk/net/sched/em_meta.c index 18d85d259104..8e8d836f00c0 100644 --- a/trunk/net/sched/em_meta.c +++ b/trunk/net/sched/em_meta.c @@ -303,17 +303,17 @@ META_COLLECTOR(var_sk_bound_if) { SKIP_NONLOCAL(skb); - if (skb->sk->sk_bound_dev_if == 0) { + if (skb->sk->sk_bound_dev_if == 0) { dst->value = (unsigned long) "any"; dst->len = 3; - } else { + } else { struct net_device *dev; - dev = dev_get_by_index(&init_net, skb->sk->sk_bound_dev_if); + rcu_read_lock(); + dev = dev_get_by_index_rcu(&init_net, skb->sk->sk_bound_dev_if); *err = var_dev(dev, dst); - if (dev) - dev_put(dev); - } + rcu_read_unlock(); + } } META_COLLECTOR(int_sk_refcnt)