Commit 614accf5 authored by Breno Leitao's avatar Breno Leitao Committed by Jakub Kicinski
Browse files

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: default avatarBreno Leitao <leitao@debian.org>
Link: https://patch.msgid.link/20250918-netpoll_jv-v1-2-67d50eeb2c26@debian.org


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent b34df17d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);
}