Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1c4b4661 authored by Christophe JAILLET's avatar Christophe JAILLET Committed by Greg Kroah-Hartman
Browse files

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: 15b99ac1 ("[PATCH] pcmcia: add return value to _config() functions")
Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/8c544d18084f8b37dd108e844f7e79e85ff708ff.1684570373.git.christophe.jaillet@wanadoo.fr


Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 39dd790d
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -282,13 +282,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;
@@ -325,11 +326,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)
{