mwifiex: propagate mwifiex_add_card() errno code in mwifiex_sdio_probe()
authorJavier Martinez Canillas <javier@osg.samsung.com>
Fri, 27 May 2016 14:18:17 +0000 (10:18 -0400)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 16 Jun 2016 15:05:06 +0000 (18:05 +0300)
There's only a check if mwifiex_add_card() returned a nonzero value, but
the actual error code is neither stored nor propagated to the caller. So
instead of always returning -1 (which is -EPERM and not a suitable errno
code in this case), propagate the value returned by mwifiex_add_card().

Patch also removes the assignment of sdio_disable_func() returned value
since it was overwritten anyways and what matters is to know the error
value returned by the first function that failed.

Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Reviewed-by: Julian Calaby <julian.calaby@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/marvell/mwifiex/sdio.c

index 138dc1fcd3a9f88c3b21d7b815f625f3f280fff7..b248d10f09df203ba47d7161caea939f56a97973 100644 (file)
@@ -191,14 +191,14 @@ mwifiex_sdio_probe(struct sdio_func *func, const struct sdio_device_id *id)
        if (func->dev.of_node)
                mwifiex_sdio_probe_of(&func->dev, card);
 
-       if (mwifiex_add_card(card, &add_remove_card_sem, &sdio_ops,
-                            MWIFIEX_SDIO)) {
+       ret = mwifiex_add_card(card, &add_remove_card_sem, &sdio_ops,
+                              MWIFIEX_SDIO);
+       if (ret) {
                pr_err("%s: add card failed\n", __func__);
                kfree(card);
                sdio_claim_host(func);
-               ret = sdio_disable_func(func);
+               sdio_disable_func(func);
                sdio_release_host(func);
-               ret = -1;
        }
 
        return ret;