diff options
author | Breno Leitao <leitao@debian.org> | 2025-09-18 05:25:58 -0700 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2025-09-19 17:52:06 -0700 |
commit | 614accf5455304ac0e708882609a34ec9aec463b (patch) | |
tree | 183fa22b7c5c3114d1f64ae3a1b66d50ab3115dd | |
parent | b34df17d588de926212527a2f2ce72bc4e330260 (diff) |
net: netpoll: use synchronize_net() instead of synchronize_rcu()
Replace synchronize_rcu() with synchronize_net() in __netpoll_free().
synchronize_net() is RTNL-aware and will use the more efficient
synchronize_rcu_expedited() when called under RTNL lock, avoiding
the potentially expensive synchronize_rcu() in RTNL critical sections.
Since __netpoll_free() is called with RTNL held (as indicated by
ASSERT_RTNL()), this change improves performance by reducing the
time spent in the RTNL critical section.
Signed-off-by: Breno Leitao <leitao@debian.org>
Link: https://patch.msgid.link/20250918-netpoll_jv-v1-2-67d50eeb2c26@debian.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r-- | net/core/netpoll.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/core/netpoll.c b/net/core/netpoll.c index c58faa747165..60a05d3b7c24 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c @@ -834,7 +834,7 @@ void __netpoll_free(struct netpoll *np) ASSERT_RTNL(); /* Wait for transmitting packets to finish before freeing. */ - synchronize_rcu(); + synchronize_net(); __netpoll_cleanup(np); kfree(np); } |