diff options
author | Jakub Kicinski <kuba@kernel.org> | 2025-04-02 18:34:05 -0700 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2025-04-04 07:35:38 -0700 |
commit | 34f71de3f548eba0604c9cbabc1eb68b2f81fa0f (patch) | |
tree | c0a716edce465be07a682f8162bc292e596f248e /net/core/netdev_rx_queue.c | |
parent | ec304b70d46bd2ed66541c5b57b63276529e05b1 (diff) | |
download | linux-34f71de3f548eba0604c9cbabc1eb68b2f81fa0f.tar.gz linux-34f71de3f548eba0604c9cbabc1eb68b2f81fa0f.tar.bz2 linux-34f71de3f548eba0604c9cbabc1eb68b2f81fa0f.zip |
net: avoid false positive warnings in __net_mp_close_rxq()
Commit under Fixes solved the problem of spurious warnings when we
uninstall an MP from a device while its down. The __net_mp_close_rxq()
which is used by io_uring was not fixed. Move the fix over and reuse
__net_mp_close_rxq() in the devmem path.
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Fixes: a70f891e0fa0 ("net: devmem: do not WARN conditionally after netdev_rx_queue_restart()")
Reviewed-by: Mina Almasry <almasrymina@google.com>
Link: https://patch.msgid.link/20250403013405.2827250-3-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'net/core/netdev_rx_queue.c')
-rw-r--r-- | net/core/netdev_rx_queue.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/core/netdev_rx_queue.c b/net/core/netdev_rx_queue.c index 556b5393ec9f..d126f10197bf 100644 --- a/net/core/netdev_rx_queue.c +++ b/net/core/netdev_rx_queue.c @@ -154,6 +154,7 @@ void __net_mp_close_rxq(struct net_device *dev, unsigned int ifq_idx, const struct pp_memory_provider_params *old_p) { struct netdev_rx_queue *rxq; + int err; if (WARN_ON_ONCE(ifq_idx >= dev->real_num_rx_queues)) return; @@ -173,7 +174,8 @@ void __net_mp_close_rxq(struct net_device *dev, unsigned int ifq_idx, rxq->mp_params.mp_ops = NULL; rxq->mp_params.mp_priv = NULL; - WARN_ON(netdev_rx_queue_restart(dev, ifq_idx)); + err = netdev_rx_queue_restart(dev, ifq_idx); + WARN_ON(err && err != -ENETDOWN); } void net_mp_close_rxq(struct net_device *dev, unsigned ifq_idx, |