mmc: core: Let eMMC sanitize not retry in case of timeout/failure
authorBean Huo <beanhuo@micron.com>
Wed, 14 Apr 2021 21:22:36 +0000 (23:22 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Thu, 15 Apr 2021 11:43:46 +0000 (13:43 +0200)
Not all commands need to be retried in case of a timeout/failure. This is
the case for the eMMC sanitize command, for example, which is issued
through the ioctl interface. More precisely, in case of timeout, retrying
could make the user wait for a very long time as each retry loop could last
for a couple of minutes.

Therefore, let's not use retries for the eMMC sanitize command.

Signed-off-by: Bean Huo <beanhuo@micron.com>
Link: https://lore.kernel.org/r/20210414212236.346813-3-huobean@gmail.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/core/mmc_ops.c

index 1ca0c89..cdf02d8 100644 (file)
@@ -1028,8 +1028,8 @@ int mmc_sanitize(struct mmc_card *card, unsigned int timeout_ms)
 
        mmc_retune_hold(host);
 
-       err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_SANITIZE_START,
-                        1, timeout_ms);
+       err = __mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_SANITIZE_START,
+                          1, timeout_ms, 0, true, false, 0);
        if (err)
                pr_err("%s: Sanitize failed err=%d\n", mmc_hostname(host), err);