瀏覽代碼

mmc: tmio: Use common error handling code in tmio_mmc_host_probe()

* 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>
Markus Elfring 7 年之前
父節點
當前提交
7f8e446b03
共有 1 個文件被更改,包括 9 次插入8 次删除
  1. 9 8
      drivers/mmc/host/tmio_mmc_core.c

+ 9 - 8
drivers/mmc/host/tmio_mmc_core.c

@@ -1302,23 +1302,24 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host,
 	pm_runtime_enable(&pdev->dev);
 	pm_runtime_enable(&pdev->dev);
 
 
 	ret = mmc_add_host(mmc);
 	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);
 	dev_pm_qos_expose_latency_limit(&pdev->dev, 100);
 
 
 	if (pdata->flags & TMIO_MMC_USE_GPIO_CD) {
 	if (pdata->flags & TMIO_MMC_USE_GPIO_CD) {
 		ret = mmc_gpio_request_cd(mmc, pdata->cd_gpio, 0);
 		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);
 		mmc_gpiod_request_cd_irq(mmc);
 	}
 	}
 
 
 	return 0;
 	return 0;
+
+remove_host:
+	tmio_mmc_host_remove(_host);
+	return ret;
 }
 }
 EXPORT_SYMBOL_GPL(tmio_mmc_host_probe);
 EXPORT_SYMBOL_GPL(tmio_mmc_host_probe);