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:

committed by
Greg Kroah-Hartman

parent
8825991838
commit
c10c6ea9b3
@@ -270,13 +270,14 @@ static int ray_probe(struct pcmcia_device *p_dev)
|
|||||||
{
|
{
|
||||||
ray_dev_t *local;
|
ray_dev_t *local;
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
|
int ret;
|
||||||
|
|
||||||
dev_dbg(&p_dev->dev, "ray_attach()\n");
|
dev_dbg(&p_dev->dev, "ray_attach()\n");
|
||||||
|
|
||||||
/* Allocate space for private device-specific data */
|
/* Allocate space for private device-specific data */
|
||||||
dev = alloc_etherdev(sizeof(ray_dev_t));
|
dev = alloc_etherdev(sizeof(ray_dev_t));
|
||||||
if (!dev)
|
if (!dev)
|
||||||
goto fail_alloc_dev;
|
return -ENOMEM;
|
||||||
|
|
||||||
local = netdev_priv(dev);
|
local = netdev_priv(dev);
|
||||||
local->finder = p_dev;
|
local->finder = p_dev;
|
||||||
@@ -313,11 +314,16 @@ static int ray_probe(struct pcmcia_device *p_dev)
|
|||||||
timer_setup(&local->timer, NULL, 0);
|
timer_setup(&local->timer, NULL, 0);
|
||||||
|
|
||||||
this_device = p_dev;
|
this_device = p_dev;
|
||||||
return ray_config(p_dev);
|
ret = ray_config(p_dev);
|
||||||
|
if (ret)
|
||||||
|
goto err_free_dev;
|
||||||
|
|
||||||
fail_alloc_dev:
|
return 0;
|
||||||
return -ENOMEM;
|
|
||||||
} /* ray_attach */
|
err_free_dev:
|
||||||
|
free_netdev(dev);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static void ray_detach(struct pcmcia_device *link)
|
static void ray_detach(struct pcmcia_device *link)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user