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

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

wifi: wl3501_cs: Fix an error handling path in wl3501_probe()



[ Upstream commit 391af06a02e7642039ac5f6c4b2c034ab0992b5d ]

Should wl3501_config() fail, some resources need to be released as already
done in the remove function.

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/7cc9c9316489b7d69b36aeb0edd3123538500b41.1684569865.git.christophe.jaillet@wanadoo.fr


Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 4448ad27
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -1863,6 +1863,7 @@ static int wl3501_probe(struct pcmcia_device *p_dev)
{
	struct net_device *dev;
	struct wl3501_card *this;
	int ret;

	/* The io structure describes IO port mapping */
	p_dev->resource[0]->end	= 16;
@@ -1874,8 +1875,7 @@ static int wl3501_probe(struct pcmcia_device *p_dev)

	dev = alloc_etherdev(sizeof(struct wl3501_card));
	if (!dev)
		goto out_link;

		return -ENOMEM;

	dev->netdev_ops		= &wl3501_netdev_ops;
	dev->watchdog_timeo	= 5 * HZ;
@@ -1888,9 +1888,15 @@ static int wl3501_probe(struct pcmcia_device *p_dev)
	netif_stop_queue(dev);
	p_dev->priv = dev;

	return wl3501_config(p_dev);
out_link:
	return -ENOMEM;
	ret = wl3501_config(p_dev);
	if (ret)
		goto out_free_etherdev;

	return 0;

out_free_etherdev:
	free_netdev(dev);
	return ret;
}

static int wl3501_config(struct pcmcia_device *link)