Re: [PATCH] net: airoha: Fix an error handling path in airoha_probe()
From: Christophe JAILLET <hidden>
Date: 2025-05-08 14:30:16
Also in:
kernel-janitors, linux-arm-kernel, linux-mediatek, lkml
Le 18/04/2025 à 14:28, Lorenzo Bianconi a écrit :
quoted
If an error occurs after a successful airoha_hw_init() call, airoha_ppe_deinit() needs to be called as already done in the remove function. Fixes: 00a7678310fe ("net: airoha: Introduce flowtable offload support") Signed-off-by: Christophe JAILLET <redacted> --- Compile tested-only --- drivers/net/ethernet/airoha/airoha_eth.c | 2 ++ 1 file changed, 2 insertions(+)diff --git a/drivers/net/ethernet/airoha/airoha_eth.c b/drivers/net/ethernet/airoha/airoha_eth.c index 69e523dd4186..252b32ceb064 100644 --- a/drivers/net/ethernet/airoha/airoha_eth.c +++ b/drivers/net/ethernet/airoha/airoha_eth.c@@ -2631,6 +2631,8 @@ static int airoha_probe(struct platform_device *pdev) } } free_netdev(eth->napi_dev); + + airoha_ppe_deinit(eth); platform_set_drvdata(pdev, NULL); return err;-- 2.49.0Hi Christophe, I agree we are missing a airoha_ppe_deinit() call in the probe error path, but we should move it above after stopping the NAPI since if airoha_hw_init() fails we will undo the work done by airoha_ppe_init(). Something like:
Agreed. I'll send a v2 with as a small series, because of another leak I found while looking at it. And while at it, I'll propose a few clean-ups. CJ
quoted hunk ↗ jump to hunk
diff --git a/drivers/net/ethernet/airoha/airoha_eth.c b/drivers/net/ethernet/airoha/airoha_eth.c index 16c7896f931f..37d9678798d1 100644 --- a/drivers/net/ethernet/airoha/airoha_eth.c +++ b/drivers/net/ethernet/airoha/airoha_eth.c@@ -2959,6 +2959,7 @@ static int airoha_probe(struct platform_device *pdev) error_napi_stop: for (i = 0; i < ARRAY_SIZE(eth->qdma); i++) airoha_qdma_stop_napi(ð->qdma[i]); + airoha_ppe_init(eth); error_hw_cleanup: for (i = 0; i < ARRAY_SIZE(eth->qdma); i++) airoha_hw_cleanup(ð->qdma[i]);Agree? Regards, Lorenzo