FAILED: patch "[PATCH] mmc: block: Be sure to wait while busy in CQE error recovery" failed to apply to 5.10-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.10.y
git checkout FETCH_HEAD
git cherry-pick -x c616696a902987352426fdaeec1b0b3240949e6b
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2023120358-baking-anymore-b0c7@gregkh' --subject-prefix 'PATCH 5.10.y' HEAD^..
Possible dependencies:
c616696a9029 ("mmc: block: Be sure to wait while busy in CQE error recovery")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From c616696a902987352426fdaeec1b0b3240949e6b Mon Sep 17 00:00:00 2001
From: Adrian Hunter <[email protected]>
Date: Fri, 3 Nov 2023 10:47:17 +0200
Subject: [PATCH] mmc: block: Be sure to wait while busy in CQE error recovery
STOP command does not guarantee to wait while busy, but subsequent command MMC_CMDQ_TASK_MGMT to discard the queue will fail if the card is busy, so be sure to wait by employing mmc_poll_for_busy().
drivers/mmc/core/core.c +2 -0
@@ -553,6 +553,8 @@ int mmc_cqe_recovery(struct mmc_host *host) cmd.busy_timeout =MMC_CQE_RECOVERY_TIMEOUT ;mmc_wait_for_cmd (host, &cmd,0 ); +mmc_poll_for_busy (host->card,MMC_CQE_RECOVERY_TIMEOUT , true,MMC_BUSY_IO ); +memset (&cmd,0 ,sizeof (cmd)); cmd.opcode =MMC_CMDQ_TASK_MGMT ; cmd.arg =1 ;/* Discard entire queue */
PATCH 1/1 mmc: block: Be sure to wait while busy in CQE error recovery
STOP command does not guarantee to wait while busy, but subsequent command MMC_CMDQ_TASK_MGMT to discard the queue will fail if the card is busy, so be sure to wait by employing mmc_poll_for_busy().
Backport to 5.10: Add mmc_busy_cmd MMC_BUSY_IO
--- drivers/mmc/core/core.c | 2 ++ drivers/mmc/core/mmc_ops.c | 3 ++- drivers/mmc/core/mmc_ops.h | 1 + 3 files changed, 5 insertions(+), 1 deletion(-)
drivers/mmc/core/core.c +2 -0
@@ -553,6 +553,8 @@ int mmc_cqe_recovery(struct mmc_host *host) cmd.busy_timeout =MMC_CQE_RECOVERY_TIMEOUT ;mmc_wait_for_cmd (host, &cmd,MMC_CMD_RETRIES ); +mmc_poll_for_busy (host->card,MMC_CQE_RECOVERY_TIMEOUT ,MMC_BUSY_IO ); +memset (&cmd,0 ,sizeof (cmd)); cmd.opcode =MMC_CMDQ_TASK_MGMT ; cmd.arg =1 ;/* Discard entire queue */
drivers/mmc/core/mmc_ops.c +2 -1
@@ -452,7 +452,7 @@ static int mmc_busy_status(struct mmc_card *card, bool retry_crc_err,u32 status =0 ;int err; -if (host->ops->card_busy) { +if (busy_cmd !=MMC_BUSY_IO && host->ops->card_busy) { *busy = host->ops->card_busy (host);return 0 ; }
@@ -473,6 +473,7 @@ static int mmc_busy_status(struct mmc_card *card, bool retry_crc_err, err =R1_STATUS (status) ? -EIO :0 ;break ;case MMC_BUSY_HPI : +case MMC_BUSY_IO :break ;default : err = -EINVAL ;
drivers/mmc/core/mmc_ops.h +1 -0
@@ -14,6 +14,7 @@ enum mmc_busy_cmd {MMC_BUSY_CMD6 ,MMC_BUSY_ERASE ,MMC_BUSY_HPI , + MMC_BUSY_IO, };struct mmc_host ;
Signature · 1 line
2.34.1
Re: [PATCH 5.10] mmc: block: Be sure to wait while busy in CQE error recovery
Quoted 16 lines · Adrian Hunter
STOP command does not guarantee to wait while busy, but subsequent command
MMC_CMDQ_TASK_MGMTto discard the queue will fail if the card is busy, so be sure to wait by employingmmc_poll_for_busy().Backport to 5.10: Add
mmc_busy_cmdMMC_BUSY_IOFixes 72a5af554df8 ("mmc: core: Add support for handling CQE requests")Signed-off-by Adrian Hunter <[email protected]>Reviewed-by Avri Altman <[email protected]>Reviewed-by Christian Loehle <[email protected]>Signed-off-by Ulf Hansson <[email protected]>(cherry picked from commit c616696a902987352426fdaeec1b0b3240949e6b)Tested-by Adrian Hunter <[email protected]>Signed-off-by Adrian Hunter <[email protected]>
Quoted 5 lines
--- drivers/mmc/core/core.c | 2 ++ drivers/mmc/core/mmc_ops.c | 3 ++- drivers/mmc/core/mmc_ops.h | 1 + 3 files changed, 5 insertions(+), 1 deletion(-)
Now queued up, thanks.
greg k-h