lkml.org 
[lkml]   [2022]   [Dec]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] ixp4xx_eth: Fix an error handling path in ixp4xx_eth_probe()
Date
If an error occurs after a successful ixp4xx_mdio_register() call, it
should be undone by a corresponding ixp4xx_mdio_remove().

Add the missing call in the error handling path, as already done in the
remove function.

Fixes: 2098c18d6cf6 ("IXP4xx: Add PHYLIB support to Ethernet driver.")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
drivers/net/ethernet/xscale/ixp4xx_eth.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/xscale/ixp4xx_eth.c b/drivers/net/ethernet/xscale/ixp4xx_eth.c
index 3b0c5f177447..007d68b385a5 100644
--- a/drivers/net/ethernet/xscale/ixp4xx_eth.c
+++ b/drivers/net/ethernet/xscale/ixp4xx_eth.c
@@ -1490,8 +1490,10 @@ static int ixp4xx_eth_probe(struct platform_device *pdev)

netif_napi_add_weight(ndev, &port->napi, eth_poll, NAPI_WEIGHT);

- if (!(port->npe = npe_request(NPE_ID(port->id))))
- return -EIO;
+ if (!(port->npe = npe_request(NPE_ID(port->id)))) {
+ err = -EIO;
+ goto err_remove_mdio;
+ }

port->plat = plat;
npe_port_tab[NPE_ID(port->id)] = port;
@@ -1530,6 +1532,8 @@ static int ixp4xx_eth_probe(struct platform_device *pdev)
err_free_mem:
npe_port_tab[NPE_ID(port->id)] = NULL;
npe_release(port->npe);
+err_remove_mdio:
+ ixp4xx_mdio_remove();
return err;
}

--
2.34.1
\
 
 \ /
  Last update: 2023-03-26 23:16    [W:0.036 / U:0.148 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site