This is the backport for 4.19, it applied for more recent branches and is not applicable to 4.14. From: gregkh@xxxxxxxxxxxxxxxxxxx <gregkh@xxxxxxxxxxxxxxxxxxx> Sent: Friday, February 18, 2022 11:33 AM To: Christian Löhle Cc: stable@xxxxxxxxxxxxxxx; Ulf Hansson; Adrian Hunter Subject: Re: [PATCH] mmc: block: fix read single on recovery logic On Fri, Feb 18, 2022 at 09:50:54AM +0000, Christian Löhle wrote: > commit 54309fde1a352ad2674ebba004a79f7d20b9f037 upstream. > > On reads with MMC_READ_MULTIPLE_BLOCK that fail, > the recovery handler will use MMC_READ_SINGLE_BLOCK for > each of the blocks, up to MMC_READ_SINGLE_RETRIES times each. > The logic for this is fixed to never report unsuccessful reads > as success to the block layer. > > On command error with retries remaining, blk_update_request was > called with whatever value error was set last to. > In case it was last set to BLK_STS_OK (default), the read will be > reported as success, even though there was no data read from the device. > This could happen on a CRC mismatch for the response, > a card rejecting the command (e.g. again due to a CRC mismatch). > In case it was last set to BLK_STS_IOERR, the error is reported correctly, > but no retries will be attempted. > > Fixes: 81196976ed946c ("mmc: block: Add blk-mq support") > > Signed-off-by: Christian Loehle <cloehle@xxxxxxxxxxxxxx> > --- > drivers/mmc/core/block.c | 28 ++++++++++++++-------------- > 1 file changed, 14 insertions(+), 14 deletions(-) What stable branch(s) is this backport for? thanks, greg k-h = Hyperstone GmbH | Reichenaustr. 39a | 78467 Konstanz Managing Director: Dr. Jan Peter Berns. Commercial register of local courts: Freiburg HRB381782