On Tue, 31 May 2022 at 19:19, Adrian Hunter <adrian.hunter@xxxxxxxxx> wrote: > > The intention of the use of mmc_blk_reset_success() in > mmc_blk_cqe_recovery() was to prevent repeated resets when retrying and > getting the same error. However, that may not be the case - any amount > of time and I/O may pass before another recovery is needed, in which > case there would be no reason to deny it the opportunity to recover via > a reset if necessary. CQE recovery is expected seldom and failure to > recover (if the clear tasks command fails), even more seldom, so it is > better to allow the reset always, which can be done by calling > mmc_blk_reset_success() always. Thanks for the explanation, this certainly makes sense to me too! > > Fixes: 1e8e55b67030c6 ("mmc: block: Add CQE support") > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx> Applied for fixes, thanks! Kind regards Uffe > --- > drivers/mmc/core/block.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c > index 1259ca22d625..f4a1281658db 100644 > --- a/drivers/mmc/core/block.c > +++ b/drivers/mmc/core/block.c > @@ -1499,8 +1499,7 @@ void mmc_blk_cqe_recovery(struct mmc_queue *mq) > err = mmc_cqe_recovery(host); > if (err) > mmc_blk_reset(mq->blkdata, host, MMC_BLK_CQE_RECOVERY); > - else > - mmc_blk_reset_success(mq->blkdata, MMC_BLK_CQE_RECOVERY); > + mmc_blk_reset_success(mq->blkdata, MMC_BLK_CQE_RECOVERY); > > pr_debug("%s: CQE recovery done\n", mmc_hostname(host)); > } > -- > 2.25.1 >