From: Jakub Kicinski Date: Mon, 3 Feb 2025 21:58:16 +0000 (-0800) Subject: net: warn if NAPI instance wasn't shut down X-Git-Tag: v6.15-rc1~160^2~405 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9dd05df8403b;p=thirdparty%2Flinux.git net: warn if NAPI instance wasn't shut down Drivers should always disable a NAPI instance before removing it. If they don't the instance may be queued for polling. Since commit 86e25f40aa1e ("net: napi: Add napi_config") we also remove the NAPI from the busy polling hash table in napi_disable(), so not disabling would leave a stale entry there. Use of busy polling is relatively uncommon so bugs may be lurking in the drivers. Add an explicit warning. Reviewed-by: Joe Damato Reviewed-by: Eric Dumazet Link: https://patch.msgid.link/20250203215816.1294081-1-kuba@kernel.org Signed-off-by: Jakub Kicinski --- diff --git a/net/core/dev.c b/net/core/dev.c index c0021cbd28fc1..2b141f20b13b5 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -7071,6 +7071,9 @@ void __netif_napi_del_locked(struct napi_struct *napi) if (!test_and_clear_bit(NAPI_STATE_LISTED, &napi->state)) return; + /* Make sure NAPI is disabled (or was never enabled). */ + WARN_ON(!test_bit(NAPI_STATE_SCHED, &napi->state)); + if (napi->config) { napi->index = -1; napi->config = NULL;