A netif_napi_add() call is hidden in fjes_sw_init(). It should be undone by a corresponding netif_napi_del() call in the error handling path of the probe, as already done inthe remove function. Fixes: 265859309a76 ("fjes: NAPI polling function") Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> --- drivers/net/fjes/fjes_main.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/fjes/fjes_main.c b/drivers/net/fjes/fjes_main.c index 2513be6d4e11..01b4c9c6adbd 100644 --- a/drivers/net/fjes/fjes_main.c +++ b/drivers/net/fjes/fjes_main.c @@ -1370,7 +1370,7 @@ static int fjes_probe(struct platform_device *plat_dev) adapter->txrx_wq = alloc_workqueue(DRV_NAME "/txrx", WQ_MEM_RECLAIM, 0); if (unlikely(!adapter->txrx_wq)) { err = -ENOMEM; - goto err_free_netdev; + goto err_del_napi; } adapter->control_wq = alloc_workqueue(DRV_NAME "/control", @@ -1431,6 +1431,8 @@ static int fjes_probe(struct platform_device *plat_dev) destroy_workqueue(adapter->control_wq); err_free_txrx_wq: destroy_workqueue(adapter->txrx_wq); +err_del_napi: + netif_napi_del(&adapter->napi); err_free_netdev: free_netdev(netdev); err_out: -- 2.34.1