net: mv643xx_eth: disable napi when init rxq or txq failed in mv643xx_eth_open()
authorZhengchao Shao <shaozhengchao@huawei.com>
Wed, 9 Nov 2022 02:54:32 +0000 (10:54 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 16 Nov 2022 08:58:23 +0000 (09:58 +0100)
[ Upstream commit f111606b63ff2282428ffbac0447c871eb957b6c ]

When failed to init rxq or txq in mv643xx_eth_open() for opening device,
napi isn't disabled. When open mv643xx_eth device next time, it will
trigger a BUG_ON() in napi_enable(). Compile tested only.

Fixes: 2257e05c1705 ("mv643xx_eth: get rid of receive-side locking")
Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
Link: https://lore.kernel.org/r/20221109025432.80900-1-shaozhengchao@huawei.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/marvell/mv643xx_eth.c

index 90fd558..fc67e9d 100644 (file)
@@ -2477,6 +2477,7 @@ out_free:
        for (i = 0; i < mp->rxq_count; i++)
                rxq_deinit(mp->rxq + i);
 out:
+       napi_disable(&mp->napi);
        free_irq(dev->irq, dev);
 
        return err;