arp: Convert ioctl(SIOCGARP) to RCU.
authorKuniyuki Iwashima <kuniyu@amazon.com>
Tue, 30 Apr 2024 01:58:13 +0000 (18:58 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 2 May 2024 01:37:07 +0000 (18:37 -0700)
commitbf4ea58874df3d43f7264709cec7fe320616552c
tree54e09e532fed923864889afc954475987af31738
parent0840556e5a3a331b6932ef17dd4bc94445df3297
arp: Convert ioctl(SIOCGARP) to RCU.

ioctl(SIOCGARP) holds rtnl_lock() to get netdev by __dev_get_by_name()
and copy dev->name safely and calls neigh_lookup() later, which looks
up a neighbour entry under RCU.

Let's replace __dev_get_by_name() with dev_get_by_name_rcu() and strscpy()
with netdev_copy_name() to avoid locking rtnl_lock().

Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://lore.kernel.org/r/20240430015813.71143-8-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv4/arp.c