diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index 28b477d397b1be342689a51929983b84e0d96022..f99c47e003fe0dc9bab8db1a8f7047963f202ae8 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -1958,6 +1958,12 @@ static int mmc_reset(struct mmc_host *host) { struct mmc_card *card = host->card; + /* + * In the case of recovery, we can't expect flushing the cache to work + * always, but we have a go and ignore errors. + */ + mmc_flush_cache(host->card); + if ((host->caps & MMC_CAP_HW_RESET) && host->ops->hw_reset && mmc_can_reset(card)) { /* If the card accept RST_n signal, send it. */