]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: warn if NAPI instance wasn't shut down
authorJakub Kicinski <kuba@kernel.org>
Mon, 3 Feb 2025 21:58:16 +0000 (13:58 -0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 5 Feb 2025 01:58:55 +0000 (17:58 -0800)
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 <jdamato@fastly.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20250203215816.1294081-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/dev.c

index c0021cbd28fc11e4c4eb6184d98a2505fa674871..2b141f20b13b5714de7e32aa5ad54ce3e72188b9 100644 (file)
@@ -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;