diff options
| author | Kuniyuki Iwashima <kuniyu@google.com> | 2026-06-29 18:10:56 +0000 |
|---|---|---|
| committer | Paolo Abeni <pabeni@redhat.com> | 2026-07-01 18:42:33 +0200 |
| commit | 763a9437101b9f6210bcfbfd72ce51eb90b7a56e (patch) | |
| tree | 1eaba4a065d200a0cb65b6e3c56999e458da2ea7 /include/memory | |
| parent | 4b8f5c974d14dc955b4252c02d5e4f185ddc9b23 (diff) | |
| download | linux-next-763a9437101b9f6210bcfbfd72ce51eb90b7a56e.tar.gz linux-next-763a9437101b9f6210bcfbfd72ce51eb90b7a56e.zip | |
ipv4: fib: Drop RTNL annotation for net->ipv4.fib_table_hash[].
fib_newrule() will drop RTNL except for the first IPv4 rule.
net->ipv4.fib_table_hash[] will be read with no protection,
but this is fine because fib_table is not destroyed until
netns dismantle except for the merged main/local table.
fib_unmerge() will continue to be called under RTNL, so other
readers (fib_flush() and fib_info_notify_update()) just have
to care about the concurrent hlist_add().
IPv6 and IPMR/IP6MR also take this strategy and use RCU helpers
to avoid data race against concurrent hlist_add().
Let's not use lockdep_rtnl_is_held() and rcu_dereference_rtnl()
for net->ipv4.fib_table_hash[].
Note that commit a7e53531234d ("fib_trie: Make fib_table rcu
safe") started to use the _safe version in fib_flush(), but it
is not needed thanks to RTNL.
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Link: https://patch.msgid.link/20260629181226.1929658-5-kuniyu@google.com
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'include/memory')
0 files changed, 0 insertions, 0 deletions
