mmc: core: Fix error propagation for some ioctl commands
authorUlf Hansson <ulf.hansson@linaro.org>
Wed, 13 Sep 2023 11:29:21 +0000 (13:29 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 26 Sep 2023 13:08:05 +0000 (15:08 +0200)
commitf19c5a73e6f78d69efce66cfdce31148c76a61a6
treee9475ebdd859a695d7e14550090a75a80e8d20c6
parent168054ca5cf783e07518681fad0904de8dcc6b17
mmc: core: Fix error propagation for some ioctl commands

Userspace has currently no way of checking the internal R1 response error
bits for some commands. This is a problem for some commands, like RPMB for
example. Typically, we may detect that the busy completion has successfully
ended, while in fact the card did not complete the requested operation.

To fix the problem, let's always poll with CMD13 for these commands and
during the polling, let's also aggregate the R1 response bits. Before
completing the ioctl request, let's propagate the R1 response bits too.

Reviewed-by: Avri Altman <avri.altman@wdc.com>
Co-developed-by: Christian Loehle <christian.loehle@arm.com>
Signed-off-by: Christian Loehle <christian.loehle@arm.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20230913112921.553019-1-ulf.hansson@linaro.org
drivers/mmc/core/block.c