mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-29 07:04:10 +08:00
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:
parent
9fdce099bb
commit
c148fc2e30
@ -405,11 +405,12 @@ struct in_device *inetdev_by_index(struct net *net, int ifindex)
|
||||
{
|
||||
struct net_device *dev;
|
||||
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)
|
||||
in_dev = in_dev_get(dev);
|
||||
read_unlock(&dev_base_lock);
|
||||
rcu_read_unlock();
|
||||
return in_dev;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user