aboutsummaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorKuniyuki Iwashima <kuniyu@google.com>2025-07-16 22:08:09 +0000
committerJakub Kicinski <kuba@kernel.org>2025-07-17 16:25:20 -0700
commit0e5ac19c78654abbf43dc4ffdae290c8cb81c59c (patch)
tree8903446233de02c2ee89f789d24cecdc3ec2ce5f /include/net
parentneighbour: Allocate skb in neigh_get(). (diff)
downloadlinux-0e5ac19c78654abbf43dc4ffdae290c8cb81c59c.tar.gz
linux-0e5ac19c78654abbf43dc4ffdae290c8cb81c59c.zip
neighbour: Move neigh_find_table() to neigh_get().
neigh_valid_get_req() calls neigh_find_table() to fetch neigh_tables[]. neigh_find_table() uses rcu_dereference_rtnl(), but RTNL actually does not protect it at all; neigh_table_clear() can be called without RTNL and only waits for RCU readers by synchronize_rcu(). Fortunately, there is no bug because IPv4 is built-in, IPv6 cannot be unloaded, and DECNET was removed. To fetch neigh_tables[] by rcu_dereference() later, let's move neigh_find_table() from neigh_valid_get_req() to neigh_get(). Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com> Link: https://patch.msgid.link/20250716221221.442239-5-kuniyu@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/net')
0 files changed, 0 insertions, 0 deletions