mmc: tmio: Use common error handling code in tmio_mmc_host_probe()
authorMarkus Elfring <elfring@users.sourceforge.net>
Fri, 27 Oct 2017 17:09:17 +0000 (19:09 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Thu, 2 Nov 2017 14:20:29 +0000 (15:20 +0100)
* Add a jump target so that a bit of exception handling can be better
  reused at the end of this function.

* Adjust condition checks.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/tmio_mmc_core.c

index 3a6d49f07e22d7273e85d49c8882400bb446b2dd..4c8198f8b04a45831b945b80be5460404dafc306 100644 (file)
@@ -1302,23 +1302,24 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host,
        pm_runtime_enable(&pdev->dev);
 
        ret = mmc_add_host(mmc);
-       if (ret < 0) {
-               tmio_mmc_host_remove(_host);
-               return ret;
-       }
+       if (ret)
+               goto remove_host;
 
        dev_pm_qos_expose_latency_limit(&pdev->dev, 100);
 
        if (pdata->flags & TMIO_MMC_USE_GPIO_CD) {
                ret = mmc_gpio_request_cd(mmc, pdata->cd_gpio, 0);
-               if (ret < 0) {
-                       tmio_mmc_host_remove(_host);
-                       return ret;
-               }
+               if (ret)
+                       goto remove_host;
+
                mmc_gpiod_request_cd_irq(mmc);
        }
 
        return 0;
+
+remove_host:
+       tmio_mmc_host_remove(_host);
+       return ret;
 }
 EXPORT_SYMBOL_GPL(tmio_mmc_host_probe);