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:
Родитель
9fdce099bb
Коммит
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;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче