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 1ca0c89081be6f5e0e8124e0a23fd5266070732e..cdf02d88fe920848f30ffbd62b37fbf3581fbb67 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);