]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
mmc: tegra: unlock mutex before returning
authorSang-Hun Lee <sanlee@nvidia.com>
Fri, 18 Jul 2014 03:39:57 +0000 (23:39 -0400)
committerDhiren Parmar <dparmar@nvidia.com>
Fri, 15 Aug 2014 06:58:16 +0000 (23:58 -0700)
To avoid hanging the entire system, unlock mutex lock before
returning

Bug 1526837

Change-Id: I523b5ad2ea7787ca780163e1e1db91c475c81ce1
Signed-off-by: Sang-Hun Lee <sanlee@nvidia.com>
Reviewed-on: http://git-master/r/439706
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Pavan Kunapuli <pkunapuli@nvidia.com>
Reviewed-by: Naveen Kumar Arepalli <naveenk@nvidia.com>
Reviewed-by: Mitch Luban <mluban@nvidia.com>
drivers/mmc/host/sdhci-tegra.c

index 84386f0dee9e25c1875878c23059f33d75ddbbf1..b4abc3a0b6f2792d4a161581757d0695d6a890dc 100644 (file)
@@ -1434,6 +1434,7 @@ static void tegra_sdhci_set_clock(struct sdhci_host *sdhci, unsigned int clock)
                        if (ret) {
                                dev_err(mmc_dev(sdhci->mmc),
                                "clock enable is failed, ret: %d\n", ret);
+                               mutex_unlock(&tegra_host->set_clock_mutex);
                                return;
                        }
                        tegra_host->clk_enabled = true;
@@ -1449,6 +1450,7 @@ static void tegra_sdhci_set_clock(struct sdhci_host *sdhci, unsigned int clock)
                        if (ret) {
                                dev_err(mmc_dev(sdhci->mmc),
                                "clock enable is failed, ret: %d\n", ret);
+                               mutex_unlock(&tegra_host->set_clock_mutex);
                                return;
                        }
                        tegra_host->is_sdmmc_emc_clk_on = true;
@@ -1458,6 +1460,7 @@ static void tegra_sdhci_set_clock(struct sdhci_host *sdhci, unsigned int clock)
                        if (ret) {
                                dev_err(mmc_dev(sdhci->mmc),
                                "clock enable is failed, ret: %d\n", ret);
+                               mutex_unlock(&tegra_host->set_clock_mutex);
                                return;
                        }
                        tegra_host->is_sdmmc_sclk_on = true;