| From f2f607e34b67d8936ffeb2758f502a2290cc6501 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 7 Nov 2022 12:30:32 +0800 |
| Subject: drivers: net: xgene: disable napi when register irq failed in |
| xgene_enet_open() |
| |
| From: Zhengchao Shao <shaozhengchao@huawei.com> |
| |
| [ Upstream commit ce9e57feeed81d17d5e80ed86f516ff0d39c3867 ] |
| |
| When failed to register irq in xgene_enet_open() for opening device, |
| napi isn't disabled. When open xgene device next time, it will reports |
| a invalid opcode issue. Fix it. Only be compiled, not be tested. |
| |
| Fixes: aeb20b6b3f4e ("drivers: net: xgene: fix: ifconfig up/down crash") |
| Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com> |
| Link: https://lore.kernel.org/r/20221107043032.357673-1-shaozhengchao@huawei.com |
| Signed-off-by: Paolo Abeni <pabeni@redhat.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c |
| index 17c07837033f..3eeae65bcc5a 100644 |
| --- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c |
| +++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c |
| @@ -805,8 +805,10 @@ static int xgene_enet_open(struct net_device *ndev) |
| |
| xgene_enet_napi_enable(pdata); |
| ret = xgene_enet_register_irq(ndev); |
| - if (ret) |
| + if (ret) { |
| + xgene_enet_napi_disable(pdata); |
| return ret; |
| + } |
| |
| if (ndev->phydev) { |
| phy_start(ndev->phydev); |
| -- |
| 2.35.1 |
| |