summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeert Uytterhoeven2016-12-19 15:03:45 +0100
committerUlf Hansson2017-02-13 13:19:53 +0100
commit164b50b353908c79b551b3658e37f29182e2c0b3 (patch)
treeb3a049e41f6463809f6cb2bfb7396d9285e1f0b4
parentmmc: block: Avoid uninitialized warning in mmc_blk_issue_discard_rq() (diff)
downloadkernel-qcow2-linux-164b50b353908c79b551b3658e37f29182e2c0b3.tar.gz
kernel-qcow2-linux-164b50b353908c79b551b3658e37f29182e2c0b3.tar.xz
kernel-qcow2-linux-164b50b353908c79b551b3658e37f29182e2c0b3.zip
mmc: block: Replace "goto retry" by a proper do / while loop
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-rw-r--r--drivers/mmc/core/block.c28
1 files changed, 13 insertions, 15 deletions
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
index 5f942a34d65c..6648a17b96c0 100644
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
@@ -1164,21 +1164,19 @@ static int mmc_blk_issue_discard_rq(struct mmc_queue *mq, struct request *req)
arg = MMC_TRIM_ARG;
else
arg = MMC_ERASE_ARG;
-retry:
- if (card->quirks & MMC_QUIRK_INAND_CMD38) {
- err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
- INAND_CMD38_ARG_EXT_CSD,
- arg == MMC_TRIM_ARG ?
- INAND_CMD38_ARG_TRIM :
- INAND_CMD38_ARG_ERASE,
- 0);
- if (err)
- goto out;
- }
- err = mmc_erase(card, from, nr, arg);
-out:
- if (err == -EIO && !mmc_blk_reset(md, card->host, type))
- goto retry;
+ do {
+ err = 0;
+ if (card->quirks & MMC_QUIRK_INAND_CMD38) {
+ err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
+ INAND_CMD38_ARG_EXT_CSD,
+ arg == MMC_TRIM_ARG ?
+ INAND_CMD38_ARG_TRIM :
+ INAND_CMD38_ARG_ERASE,
+ 0);
+ }
+ if (!err)
+ err = mmc_erase(card, from, nr, arg);
+ } while (err == -EIO && !mmc_blk_reset(md, card->host, type));
if (!err)
mmc_blk_reset_success(md, type);
fail: