aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Gabbasov <andrew_gabbasov@mentor.com>2014-10-01 08:14:11 -0400
committerUlf Hansson <ulf.hansson@linaro.org>2014-11-10 06:40:28 -0500
commit4b75bffc77c40ac3c17a3ea9bbdc3a733c34591b (patch)
treed8a46bc8af6e5fa47794199ef83992a4bae117a2
parentfc75b708b849fd15da162e0a806ae0dc27996400 (diff)
mmc: core: Fix error paths and messages in mmc_init_card
In mmc_init_card function some of the branches in error handling paths go to "err" label, which skips removing of newly allocated card structure, that will actually not be used. Fix that by using proper "free_card" label. Also, some messages in these branches are reported as warnings, although the operation processing is not continued. Change these messages to error level. Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-rw-r--r--drivers/mmc/core/mmc.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index a301a78a2bd1..bcde451f6d91 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -998,7 +998,7 @@ static int mmc_select_hs_ddr(struct mmc_card *card)
998 ext_csd_bits, 998 ext_csd_bits,
999 card->ext_csd.generic_cmd6_time); 999 card->ext_csd.generic_cmd6_time);
1000 if (err) { 1000 if (err) {
1001 pr_warn("%s: switch to bus width %d ddr failed\n", 1001 pr_err("%s: switch to bus width %d ddr failed\n",
1002 mmc_hostname(host), 1 << bus_width); 1002 mmc_hostname(host), 1 << bus_width);
1003 return err; 1003 return err;
1004 } 1004 }
@@ -1069,7 +1069,7 @@ static int mmc_select_hs400(struct mmc_card *card)
1069 card->ext_csd.generic_cmd6_time, 1069 card->ext_csd.generic_cmd6_time,
1070 true, true, true); 1070 true, true, true);
1071 if (err) { 1071 if (err) {
1072 pr_warn("%s: switch to high-speed from hs200 failed, err:%d\n", 1072 pr_err("%s: switch to high-speed from hs200 failed, err:%d\n",
1073 mmc_hostname(host), err); 1073 mmc_hostname(host), err);
1074 return err; 1074 return err;
1075 } 1075 }
@@ -1079,7 +1079,7 @@ static int mmc_select_hs400(struct mmc_card *card)
1079 EXT_CSD_DDR_BUS_WIDTH_8, 1079 EXT_CSD_DDR_BUS_WIDTH_8,
1080 card->ext_csd.generic_cmd6_time); 1080 card->ext_csd.generic_cmd6_time);
1081 if (err) { 1081 if (err) {
1082 pr_warn("%s: switch to bus width for hs400 failed, err:%d\n", 1082 pr_err("%s: switch to bus width for hs400 failed, err:%d\n",
1083 mmc_hostname(host), err); 1083 mmc_hostname(host), err);
1084 return err; 1084 return err;
1085 } 1085 }
@@ -1089,7 +1089,7 @@ static int mmc_select_hs400(struct mmc_card *card)
1089 card->ext_csd.generic_cmd6_time, 1089 card->ext_csd.generic_cmd6_time,
1090 true, true, true); 1090 true, true, true);
1091 if (err) { 1091 if (err) {
1092 pr_warn("%s: switch to hs400 failed, err:%d\n", 1092 pr_err("%s: switch to hs400 failed, err:%d\n",
1093 mmc_hostname(host), err); 1093 mmc_hostname(host), err);
1094 return err; 1094 return err;
1095 } 1095 }
@@ -1232,7 +1232,7 @@ static int mmc_hs200_tuning(struct mmc_card *card)
1232 mmc_host_clk_release(host); 1232 mmc_host_clk_release(host);
1233 1233
1234 if (err) 1234 if (err)
1235 pr_warn("%s: tuning execution failed\n", 1235 pr_err("%s: tuning execution failed\n",
1236 mmc_hostname(host)); 1236 mmc_hostname(host));
1237 } 1237 }
1238 1238
@@ -1458,18 +1458,18 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
1458 if (mmc_card_hs200(card)) { 1458 if (mmc_card_hs200(card)) {
1459 err = mmc_hs200_tuning(card); 1459 err = mmc_hs200_tuning(card);
1460 if (err) 1460 if (err)
1461 goto err; 1461 goto free_card;
1462 1462
1463 err = mmc_select_hs400(card); 1463 err = mmc_select_hs400(card);
1464 if (err) 1464 if (err)
1465 goto err; 1465 goto free_card;
1466 } else if (mmc_card_hs(card)) { 1466 } else if (mmc_card_hs(card)) {
1467 /* Select the desired bus width optionally */ 1467 /* Select the desired bus width optionally */
1468 err = mmc_select_bus_width(card); 1468 err = mmc_select_bus_width(card);
1469 if (!IS_ERR_VALUE(err)) { 1469 if (!IS_ERR_VALUE(err)) {
1470 err = mmc_select_hs_ddr(card); 1470 err = mmc_select_hs_ddr(card);
1471 if (err) 1471 if (err)
1472 goto err; 1472 goto free_card;
1473 } 1473 }
1474 } 1474 }
1475 1475