net: cxgb3_main: disable napi when bind qsets failed in cxgb_up()
authorZhengchao Shao <shaozhengchao@huawei.com>
Wed, 9 Nov 2022 02:14:51 +0000 (10:14 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 16 Nov 2022 08:58:21 +0000 (09:58 +0100)
[ Upstream commit d75aed1428da787cbe42bc073d76f1354f364d92 ]

When failed to bind qsets in cxgb_up() for opening device, napi isn't
disabled. When open cxgb3 device next time, it will trigger a BUG_ON()
in napi_enable(). Compile tested only.

Fixes: 48c4b6dbb7e2 ("cxgb3 - fix port up/down error path")
Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
Link: https://lore.kernel.org/r/20221109021451.121490-1-shaozhengchao@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c

index 38e4770..07568aa 100644 (file)
@@ -1302,6 +1302,7 @@ static int cxgb_up(struct adapter *adap)
                if (ret < 0) {
                        CH_ERR(adap, "failed to bind qsets, err %d\n", ret);
                        t3_intr_disable(adap);
+                       quiesce_rx(adap);
                        free_irq_resources(adap);
                        err = ret;
                        goto out;