Netdev List
 help / color / mirror / Atom feed
* [PATCH v1 net-next 0/2] net: Misc follow-up on RTNL-less fib_rules series.
@ 2026-07-02  4:44 Kuniyuki Iwashima
  2026-07-02  4:44 ` [PATCH v1 net-next 1/2] ipv4: fib: Define fib_table_hash_lock under CONFIG_IP_MULTIPLE_TABLES Kuniyuki Iwashima
  2026-07-02  4:44 ` [PATCH v1 net-next 2/2] net: fib_rules: Destroy ops->lock in fib_rules_unregister() Kuniyuki Iwashima
  0 siblings, 2 replies; 5+ messages in thread
From: Kuniyuki Iwashima @ 2026-07-02  4:44 UTC (permalink / raw)
  To: David Ahern, Ido Schimmel, David S . Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni
  Cc: Simon Horman, Kuniyuki Iwashima, Kuniyuki Iwashima, netdev

Patch 1 moves net->ipv4.fib_table_hash_lock under
CONFIG_IP_MULTIPLE_TABLES.

Patch 2 adds mutex_destroy() for fib_rules_ops.lock.


Kuniyuki Iwashima (2):
  ipv4: fib: Define fib_table_hash_lock under CONFIG_IP_MULTIPLE_TABLES.
  net: fib_rules: Destroy ops->lock in fib_rules_unregister().

 Documentation/networking/net_cachelines/netns_ipv4_sysctl.rst | 1 +
 include/net/netns/ipv4.h                                      | 2 +-
 net/core/fib_rules.c                                          | 1 +
 net/ipv4/fib_frontend.c                                       | 3 +++
 4 files changed, 6 insertions(+), 1 deletion(-)

-- 
2.55.0.rc0.799.gd6f94ed593-goog


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v1 net-next 1/2] ipv4: fib: Define fib_table_hash_lock under CONFIG_IP_MULTIPLE_TABLES.
  2026-07-02  4:44 [PATCH v1 net-next 0/2] net: Misc follow-up on RTNL-less fib_rules series Kuniyuki Iwashima
@ 2026-07-02  4:44 ` Kuniyuki Iwashima
  2026-07-02  7:17   ` Ido Schimmel
  2026-07-02  4:44 ` [PATCH v1 net-next 2/2] net: fib_rules: Destroy ops->lock in fib_rules_unregister() Kuniyuki Iwashima
  1 sibling, 1 reply; 5+ messages in thread
From: Kuniyuki Iwashima @ 2026-07-02  4:44 UTC (permalink / raw)
  To: David Ahern, Ido Schimmel, David S . Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni
  Cc: Simon Horman, Kuniyuki Iwashima, Kuniyuki Iwashima, netdev

When CONFIG_IP_MULTIPLE_TABLES is disabled, fib_new_table()
is fib_get_table(), and no new table is created.

Let's move net->ipv4.fib_table_hash_lock under
CONFIG_IP_MULTIPLE_TABLES.

While at it, netns_ipv4_sysctl.rst is updated.

Suggested-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
---
 Documentation/networking/net_cachelines/netns_ipv4_sysctl.rst | 1 +
 include/net/netns/ipv4.h                                      | 2 +-
 net/ipv4/fib_frontend.c                                       | 3 +++
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/Documentation/networking/net_cachelines/netns_ipv4_sysctl.rst b/Documentation/networking/net_cachelines/netns_ipv4_sysctl.rst
index 6dbd97d435e9..3dc03bff739e 100644
--- a/Documentation/networking/net_cachelines/netns_ipv4_sysctl.rst
+++ b/Documentation/networking/net_cachelines/netns_ipv4_sysctl.rst
@@ -22,6 +22,7 @@ struct_mutex                    ra_mutex
 struct_fib_rules_ops*           rules_ops
 struct_fib_table                fib_main
 struct_fib_table                fib_default
+spinlock_t                      fib_table_hash_lock
 unsigned_int                    fib_rules_require_fldissect
 bool                            fib_has_custom_rules
 bool                            fib_has_custom_local_routes
diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h
index 59506320558a..cb7f8bf15671 100644
--- a/include/net/netns/ipv4.h
+++ b/include/net/netns/ipv4.h
@@ -118,6 +118,7 @@ struct netns_ipv4 {
 	struct fib_rules_ops	*rules_ops;
 	struct fib_table __rcu	*fib_main;
 	struct fib_table __rcu	*fib_default;
+	spinlock_t		fib_table_hash_lock;
 	unsigned int		fib_rules_require_fldissect;
 	bool			fib_has_custom_rules;
 #endif
@@ -127,7 +128,6 @@ struct netns_ipv4 {
 	atomic_t		fib_num_tclassid_users;
 #endif
 	struct hlist_head	*fib_table_hash;
-	spinlock_t		fib_table_hash_lock;
 	struct sock		*fibnl;
 	struct hlist_head	*fib_info_hash;
 	unsigned int		fib_info_hash_bits;
diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
index 54eb72695093..6f5d0d25b110 100644
--- a/net/ipv4/fib_frontend.c
+++ b/net/ipv4/fib_frontend.c
@@ -1584,7 +1584,10 @@ static int __net_init ip_fib_net_init(struct net *net)
 	net->ipv4.sysctl_fib_multipath_hash_fields =
 		FIB_MULTIPATH_HASH_FIELD_DEFAULT_MASK;
 #endif
+
+#ifdef CONFIG_IP_MULTIPLE_TABLES
 	spin_lock_init(&net->ipv4.fib_table_hash_lock);
+#endif
 
 	/* Avoid false sharing : Use at least a full cache line */
 	size = max_t(size_t, size, L1_CACHE_BYTES);
-- 
2.55.0.rc0.799.gd6f94ed593-goog


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v1 net-next 2/2] net: fib_rules: Destroy ops->lock in fib_rules_unregister().
  2026-07-02  4:44 [PATCH v1 net-next 0/2] net: Misc follow-up on RTNL-less fib_rules series Kuniyuki Iwashima
  2026-07-02  4:44 ` [PATCH v1 net-next 1/2] ipv4: fib: Define fib_table_hash_lock under CONFIG_IP_MULTIPLE_TABLES Kuniyuki Iwashima
@ 2026-07-02  4:44 ` Kuniyuki Iwashima
  2026-07-02  7:18   ` Ido Schimmel
  1 sibling, 1 reply; 5+ messages in thread
From: Kuniyuki Iwashima @ 2026-07-02  4:44 UTC (permalink / raw)
  To: David Ahern, Ido Schimmel, David S . Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni
  Cc: Simon Horman, Kuniyuki Iwashima, Kuniyuki Iwashima, netdev

Commit 8e133ba99cd8 ("net: fib_rules: Add fib_rules_ops.lock.")
added mutex in struct fib_rules_ops, which is initialised in
fib_rules_register().

Let's add paired mutex_destroy() in fib_rules_unregister().

Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
---
 net/core/fib_rules.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c
index 22e5e5e1a9c4..7df216c17c67 100644
--- a/net/core/fib_rules.c
+++ b/net/core/fib_rules.c
@@ -203,6 +203,7 @@ void fib_rules_unregister(struct fib_rules_ops *ops)
 	spin_unlock(&net->rules_mod_lock);
 
 	fib_rules_cleanup_ops(ops);
+	mutex_destroy(&ops->lock);
 	kfree_rcu(ops, rcu);
 }
 
-- 
2.55.0.rc0.799.gd6f94ed593-goog


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v1 net-next 1/2] ipv4: fib: Define fib_table_hash_lock under CONFIG_IP_MULTIPLE_TABLES.
  2026-07-02  4:44 ` [PATCH v1 net-next 1/2] ipv4: fib: Define fib_table_hash_lock under CONFIG_IP_MULTIPLE_TABLES Kuniyuki Iwashima
@ 2026-07-02  7:17   ` Ido Schimmel
  0 siblings, 0 replies; 5+ messages in thread
From: Ido Schimmel @ 2026-07-02  7:17 UTC (permalink / raw)
  To: Kuniyuki Iwashima
  Cc: David Ahern, David S . Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Simon Horman, Kuniyuki Iwashima, netdev

On Thu, Jul 02, 2026 at 04:44:14AM +0000, Kuniyuki Iwashima wrote:
> When CONFIG_IP_MULTIPLE_TABLES is disabled, fib_new_table()
> is fib_get_table(), and no new table is created.
> 
> Let's move net->ipv4.fib_table_hash_lock under
> CONFIG_IP_MULTIPLE_TABLES.
> 
> While at it, netns_ipv4_sysctl.rst is updated.
> 
> Suggested-by: Ido Schimmel <idosch@nvidia.com>
> Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>

Reviewed-by: Ido Schimmel <idosch@nvidia.com>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v1 net-next 2/2] net: fib_rules: Destroy ops->lock in fib_rules_unregister().
  2026-07-02  4:44 ` [PATCH v1 net-next 2/2] net: fib_rules: Destroy ops->lock in fib_rules_unregister() Kuniyuki Iwashima
@ 2026-07-02  7:18   ` Ido Schimmel
  0 siblings, 0 replies; 5+ messages in thread
From: Ido Schimmel @ 2026-07-02  7:18 UTC (permalink / raw)
  To: Kuniyuki Iwashima
  Cc: David Ahern, David S . Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Simon Horman, Kuniyuki Iwashima, netdev

On Thu, Jul 02, 2026 at 04:44:15AM +0000, Kuniyuki Iwashima wrote:
> Commit 8e133ba99cd8 ("net: fib_rules: Add fib_rules_ops.lock.")
> added mutex in struct fib_rules_ops, which is initialised in
> fib_rules_register().
> 
> Let's add paired mutex_destroy() in fib_rules_unregister().
> 
> Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>

Reviewed-by: Ido Schimmel <idosch@nvidia.com>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-07-02  7:18 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-02  4:44 [PATCH v1 net-next 0/2] net: Misc follow-up on RTNL-less fib_rules series Kuniyuki Iwashima
2026-07-02  4:44 ` [PATCH v1 net-next 1/2] ipv4: fib: Define fib_table_hash_lock under CONFIG_IP_MULTIPLE_TABLES Kuniyuki Iwashima
2026-07-02  7:17   ` Ido Schimmel
2026-07-02  4:44 ` [PATCH v1 net-next 2/2] net: fib_rules: Destroy ops->lock in fib_rules_unregister() Kuniyuki Iwashima
2026-07-02  7:18   ` Ido Schimmel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox