diff options
author | Christophe JAILLET <christophe.jaillet@wanadoo.fr> | 2023-05-20 11:48:55 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-05-30 12:38:39 +0100 |
commit | 2f36fc7542abe0bf17fe2673a1acb01ba035f18a (patch) | |
tree | 6ac0a6828b9bb3cc11c48518db1a31624c577167 | |
parent | 5876673a9993186e257a5cbeaccd2dd7428a419a (diff) | |
download | linux-stable-2f36fc7542abe0bf17fe2673a1acb01ba035f18a.tar.gz linux-stable-2f36fc7542abe0bf17fe2673a1acb01ba035f18a.tar.bz2 linux-stable-2f36fc7542abe0bf17fe2673a1acb01ba035f18a.zip |
3c589_cs: Fix an error handling path in tc589_probe()
commit 640bf95b2c7c2981fb471acdafbd3e0458f8390d upstream.
Should tc589_config() fail, some resources need to be released as already
done in the remove function.
Fixes: 15b99ac17295 ("[PATCH] pcmcia: add return value to _config() functions")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Link: https://lore.kernel.org/r/d8593ae867b24c79063646e36f9b18b0790107cb.1684575975.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/net/ethernet/3com/3c589_cs.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/net/ethernet/3com/3c589_cs.c b/drivers/net/ethernet/3com/3c589_cs.c index e28254a00599..0c0bc3c178ab 100644 --- a/drivers/net/ethernet/3com/3c589_cs.c +++ b/drivers/net/ethernet/3com/3c589_cs.c @@ -196,6 +196,7 @@ static int tc589_probe(struct pcmcia_device *link) { struct el3_private *lp; struct net_device *dev; + int ret; dev_dbg(&link->dev, "3c589_attach()\n"); @@ -219,7 +220,15 @@ static int tc589_probe(struct pcmcia_device *link) dev->ethtool_ops = &netdev_ethtool_ops; - return tc589_config(link); + ret = tc589_config(link); + if (ret) + goto err_free_netdev; + + return 0; + +err_free_netdev: + free_netdev(dev); + return ret; } static void tc589_detach(struct pcmcia_device *link) |