em_meta: avoid one dev_put()
Another rcu conversion to avoid one dev_hold()/dev_put() pair Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>hifive-unleashed-5.1
parent
c7079857cd
commit
d0075634cf
|
@ -303,17 +303,17 @@ META_COLLECTOR(var_sk_bound_if)
|
||||||
{
|
{
|
||||||
SKIP_NONLOCAL(skb);
|
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->value = (unsigned long) "any";
|
||||||
dst->len = 3;
|
dst->len = 3;
|
||||||
} else {
|
} else {
|
||||||
struct net_device *dev;
|
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);
|
*err = var_dev(dev, dst);
|
||||||
if (dev)
|
rcu_read_unlock();
|
||||||
dev_put(dev);
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
META_COLLECTOR(int_sk_refcnt)
|
META_COLLECTOR(int_sk_refcnt)
|
||||||
|
|
Loading…
Reference in New Issue