ipv4: inetdev_by_index() switch to RCU
Use dev_get_by_index_rcu() instead of __dev_get_by_index() and dev_base_lock rwlock Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
9fdce099bb
commit
c148fc2e30
@@ -405,11 +405,12 @@ struct in_device *inetdev_by_index(struct net *net, int ifindex)
|
|||||||
{
|
{
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
struct in_device *in_dev = NULL;
|
struct in_device *in_dev = NULL;
|
||||||
read_lock(&dev_base_lock);
|
|
||||||
dev = __dev_get_by_index(net, ifindex);
|
rcu_read_lock();
|
||||||
|
dev = dev_get_by_index_rcu(net, ifindex);
|
||||||
if (dev)
|
if (dev)
|
||||||
in_dev = in_dev_get(dev);
|
in_dev = in_dev_get(dev);
|
||||||
read_unlock(&dev_base_lock);
|
rcu_read_unlock();
|
||||||
return in_dev;
|
return in_dev;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user