wifi: ray_cs: Fix an error handling path in ray_probe()
[ Upstream commit 4f8d66a9fb2edcd05c1e563456a55a08910bfb37 ]
Should ray_config() fail, some resources need to be released as already
done in the remove function.
While at it, remove a useless and erroneous comment. The probe is
ray_probe(), not ray_attach().
Fixes: 15b99ac172
("[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>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/8c544d18084f8b37dd108e844f7e79e85ff708ff.1684570373.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
3d218755c4
commit
0d89e50952
@ -270,13 +270,14 @@ static int ray_probe(struct pcmcia_device *p_dev)
|
||||
{
|
||||
ray_dev_t *local;
|
||||
struct net_device *dev;
|
||||
int ret;
|
||||
|
||||
dev_dbg(&p_dev->dev, "ray_attach()\n");
|
||||
|
||||
/* Allocate space for private device-specific data */
|
||||
dev = alloc_etherdev(sizeof(ray_dev_t));
|
||||
if (!dev)
|
||||
goto fail_alloc_dev;
|
||||
return -ENOMEM;
|
||||
|
||||
local = netdev_priv(dev);
|
||||
local->finder = p_dev;
|
||||
@ -313,11 +314,16 @@ static int ray_probe(struct pcmcia_device *p_dev)
|
||||
timer_setup(&local->timer, NULL, 0);
|
||||
|
||||
this_device = p_dev;
|
||||
return ray_config(p_dev);
|
||||
ret = ray_config(p_dev);
|
||||
if (ret)
|
||||
goto err_free_dev;
|
||||
|
||||
fail_alloc_dev:
|
||||
return -ENOMEM;
|
||||
} /* ray_attach */
|
||||
return 0;
|
||||
|
||||
err_free_dev:
|
||||
free_netdev(dev);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void ray_detach(struct pcmcia_device *link)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user