diff mbox series

[net] net: cpsw: disable napi in cpsw_ndo_open()

Message ID 20221109011537.96975-1-shaozhengchao@huawei.com
State New
Headers show
Series [net] net: cpsw: disable napi in cpsw_ndo_open() | expand

Commit Message

shaozhengchao Nov. 9, 2022, 1:15 a.m. UTC
When failed to create xdp rxqs or fill rx channels in cpsw_ndo_open() for
opening device, napi isn't disabled. When open cpsw device next time, it
will report a invalid opcode issue. Fix it. Only be compiled, not be
tested.

Fixes: d354eb85d618 ("drivers: net: cpsw: dual_emac: simplify napi usage")
Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
---
 drivers/net/ethernet/ti/cpsw.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Jakub Kicinski Nov. 10, 2022, 2:31 a.m. UTC | #1
On Wed, 9 Nov 2022 09:15:37 +0800 Zhengchao Shao wrote:
> When failed to create xdp rxqs or fill rx channels in cpsw_ndo_open() for
> opening device, napi isn't disabled. When open cpsw device next time, it
> will report a invalid opcode issue. Fix it. Only be compiled, not be
> tested.
> 
> Fixes: d354eb85d618 ("drivers: net: cpsw: dual_emac: simplify napi usage")

Nice work, not a trivial Fixes tag to zero in on, I appreciate 
the improvement :)
patchwork-bot+netdevbpf@kernel.org Nov. 10, 2022, 2:40 a.m. UTC | #2
Hello:

This patch was applied to netdev/net.git (master)
by Jakub Kicinski <kuba@kernel.org>:

On Wed, 9 Nov 2022 09:15:37 +0800 you wrote:
> When failed to create xdp rxqs or fill rx channels in cpsw_ndo_open() for
> opening device, napi isn't disabled. When open cpsw device next time, it
> will report a invalid opcode issue. Fix it. Only be compiled, not be
> tested.
> 
> Fixes: d354eb85d618 ("drivers: net: cpsw: dual_emac: simplify napi usage")
> Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
> 
> [...]

Here is the summary with links:
  - [net] net: cpsw: disable napi in cpsw_ndo_open()
    https://git.kernel.org/netdev/net/c/6d47b53fb3f3

You are awesome, thank you!
diff mbox series

Patch

diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index 709ca6dd6ecb..13c9c2d6b79b 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -854,6 +854,8 @@  static int cpsw_ndo_open(struct net_device *ndev)
 
 err_cleanup:
 	if (!cpsw->usage_count) {
+		napi_disable(&cpsw->napi_rx);
+		napi_disable(&cpsw->napi_tx);
 		cpdma_ctlr_stop(cpsw->dma);
 		cpsw_destroy_xdp_rxqs(cpsw);
 	}