diff options
author | Kuniyuki Iwashima <kuniyu@amazon.com> | 2024-04-29 18:58:11 -0700 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2024-05-01 18:37:07 -0700 |
commit | a428bfc77a4dd4ba19b7646e887fa655fcfee5a0 (patch) | |
tree | 13874acf4864cc6ca1562982870427cd204af3e4 /net/core | |
parent | 51e9ba48d48786da89d2695be9a1cab40b2afc31 (diff) |
arp: Get dev after calling arp_req_(delete|set|get)().
arp_ioctl() holds rtnl_lock() first regardless of cmd (SIOCDARP,
SIOCSARP, and SIOCGARP) to get net_device by __dev_get_by_name()
and copy dev->name safely.
In the SIOCGARP path, arp_req_get() calls neigh_lookup(), which
looks up a neighbour entry under RCU.
We will extend the RCU section not to take rtnl_lock() and instead
use dev_get_by_name_rcu() for SIOCGARP.
As a preparation, let's move __dev_get_by_name() into another
function and call it from arp_req_delete(), arp_req_set(), and
arp_req_get().
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://lore.kernel.org/r/20240430015813.71143-6-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/core')
0 files changed, 0 insertions, 0 deletions