aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/rtnl_net_debug.c
diff options
context:
space:
mode:
authorKuniyuki Iwashima <[email protected]>2024-10-04 22:10:29 +0000
committerPaolo Abeni <[email protected]>2024-10-08 13:16:59 +0000
commit76aed95319da25d6884dff01d5f0149e4b542f96 (patch)
treea4abd91a746cb82930cf34c1b588cb12e8613d4e /net/core/rtnl_net_debug.c
parentRevert "rtnetlink: add guard for RTNL" (diff)
downloadkernel-76aed95319da25d6884dff01d5f0149e4b542f96.tar.gz
kernel-76aed95319da25d6884dff01d5f0149e4b542f96.zip
rtnetlink: Add per-netns RTNL.
The goal is to break RTNL down into per-netns mutex. This patch adds per-netns mutex and its helper functions, rtnl_net_lock() and rtnl_net_unlock(). rtnl_net_lock() acquires the global RTNL and per-netns RTNL mutex, and rtnl_net_unlock() releases them. We will replace 800+ rtnl_lock() with rtnl_net_lock() and finally removes rtnl_lock() in rtnl_net_lock(). When we need to nest per-netns RTNL mutex, we will use __rtnl_net_lock(), and its locking order is defined by rtnl_net_lock_cmp_fn() as follows: 1. init_net is first 2. netns address ascending order Note that the conversion will be done under CONFIG_DEBUG_NET_SMALL_RTNL with LOCKDEP so that we can carefully add the extra mutex without slowing down RTNL operations during conversion. Signed-off-by: Kuniyuki Iwashima <[email protected]> Reviewed-by: Eric Dumazet <[email protected]> Signed-off-by: Paolo Abeni <[email protected]>
Diffstat (limited to 'net/core/rtnl_net_debug.c')
0 files changed, 0 insertions, 0 deletions