summaryrefslogtreecommitdiff
path: root/include/linux/timerqueue.h
diff options
context:
space:
mode:
authorKuniyuki Iwashima <kuniyu@google.com>2026-03-01 01:17:23 +0300
committerJakub Kicinski <kuba@kernel.org>2026-03-03 05:49:40 +0300
commit295a17b3eae97910c2664e7905a903b483c4089c (patch)
treeeea1c2c839b6fac5839926ae9afaa00ada1b5a46 /include/linux/timerqueue.h
parent2bd6c9d600d66497f5293dbb8ec61a5e80f13e64 (diff)
downloadlinux-295a17b3eae97910c2664e7905a903b483c4089c.tar.xz
ipmr: Convert ipmr_rtm_getroute() to RCU.
ipmr_rtm_getroute() calls __ipmr_get_table(), ipmr_cache_find(), and ipmr_fill_mroute(). The table is not removed until netns dismantle, and net->ipv4.mr_tables is managed with RCU list API, so __ipmr_get_table() is safe under RCU. struct mfc_cache is freed by mr_cache_put() after RCU grace period, so we can use ipmr_cache_find() under RCU. rcu_read_lock() around it was just to avoid lockdep splat for rhl_for_each_entry_rcu(). ipmr_fill_mroute() calls mr_fill_mroute(), which properly uses RCU. Let's drop RTNL for ipmr_rtm_getroute() and use RCU instead. Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com> Reviewed-by: Eric Dumazet <edumazet@google.com> Link: https://patch.msgid.link/20260228221800.1082070-6-kuniyu@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'include/linux/timerqueue.h')
0 files changed, 0 insertions, 0 deletions