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

Commit bbc2a101 authored by Lubomir Rintel's avatar Lubomir Rintel Committed by Kalle Valo
Browse files

libertas: return errno from lbs_add_card()



This makes the error handling somewhat cleaner -- lbs_add_card() does no
logner throw away the errno and lets its callers propagate it.

Signed-off-by: default avatarLubomir Rintel <lkundrak@v3.sk>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 6528d880
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -900,8 +900,8 @@ static int if_cs_probe(struct pcmcia_device *p_dev)

	/* Make this card known to the libertas driver */
	priv = lbs_add_card(card, &p_dev->dev);
	if (!priv) {
		ret = -ENOMEM;
	if (IS_ERR(priv)) {
		ret = PTR_ERR(priv);
		goto out2;
	}

+2 −2
Original line number Diff line number Diff line
@@ -1206,8 +1206,8 @@ static int if_sdio_probe(struct sdio_func *func,


	priv = lbs_add_card(card, &func->dev);
	if (!priv) {
		ret = -ENOMEM;
	if (IS_ERR(priv)) {
		ret = PTR_ERR(priv);
		goto free;
	}

+2 −2
Original line number Diff line number Diff line
@@ -1146,8 +1146,8 @@ static int if_spi_probe(struct spi_device *spi)
	 * This will call alloc_etherdev.
	 */
	priv = lbs_add_card(card, &spi->dev);
	if (!priv) {
		err = -ENOMEM;
	if (IS_ERR(priv)) {
		err = PTR_ERR(priv);
		goto free_card;
	}
	card->priv = priv;
+4 −1
Original line number Diff line number Diff line
@@ -254,8 +254,11 @@ static int if_usb_probe(struct usb_interface *intf,
		goto dealloc;
	}

	if (!(priv = lbs_add_card(cardp, &intf->dev)))
	priv = lbs_add_card(cardp, &intf->dev);
	if (IS_ERR(priv)) {
		r = PTR_ERR(priv);
		goto err_add_card;
	}

	cardp->priv = priv;

+10 −7
Original line number Diff line number Diff line
@@ -907,25 +907,29 @@ struct lbs_private *lbs_add_card(void *card, struct device *dmdev)
	struct net_device *dev;
	struct wireless_dev *wdev;
	struct lbs_private *priv = NULL;
	int err;

	/* Allocate an Ethernet device and register it */
	wdev = lbs_cfg_alloc(dmdev);
	if (IS_ERR(wdev)) {
		err = PTR_ERR(wdev);
		pr_err("cfg80211 init failed\n");
		goto done;
		goto err_cfg;
	}

	wdev->iftype = NL80211_IFTYPE_STATION;
	priv = wdev_priv(wdev);
	priv->wdev = wdev;

	if (lbs_init_adapter(priv)) {
	err = lbs_init_adapter(priv);
	if (err) {
		pr_err("failed to initialize adapter structure\n");
		goto err_wdev;
	}

	dev = alloc_netdev(0, "wlan%d", NET_NAME_UNKNOWN, ether_setup);
	if (!dev) {
		err = -ENOMEM;
		dev_err(dmdev, "no memory for network device instance\n");
		goto err_adapter;
	}
@@ -949,6 +953,7 @@ struct lbs_private *lbs_add_card(void *card, struct device *dmdev)
	init_waitqueue_head(&priv->waitq);
	priv->main_thread = kthread_run(lbs_thread, dev, "lbs_main");
	if (IS_ERR(priv->main_thread)) {
		err = PTR_ERR(priv->main_thread);
		lbs_deb_thread("Error creating main thread.\n");
		goto err_ndev;
	}
@@ -961,7 +966,7 @@ struct lbs_private *lbs_add_card(void *card, struct device *dmdev)
	priv->wol_gap = 20;
	priv->ehs_remove_supported = true;

	goto done;
	return priv;

 err_ndev:
	free_netdev(dev);
@@ -972,10 +977,8 @@ struct lbs_private *lbs_add_card(void *card, struct device *dmdev)
 err_wdev:
	lbs_cfg_free(priv);

	priv = NULL;

done:
	return priv;
 err_cfg:
	return ERR_PTR(err);
}
EXPORT_SYMBOL_GPL(lbs_add_card);