[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20201202202320.22165-1-huobean@gmail.com>
Date: Wed, 2 Dec 2020 21:23:20 +0100
From: Bean Huo <huobean@...il.com>
To: ulf.hansson@...aro.org, axboe@...nel.dk, baolin.wang@...aro.org,
beanhuo@...ron.com, arnd@...db.de, vbadigan@...eaurora.org,
richard.peng@...o.com, chaotian.jing@...iatek.com,
avri.altman@....com, linux-mmc@...r.kernel.org,
linux-kernel@...r.kernel.org, zliua@...ron.com,
zszubbocsev@...ron.com
Cc: stable@...r.kernel.org
Subject: [PATCH] mmc: block: Let CMD13 polling only for MMC IOCTLS with the R1B response
From: Bean Huo <beanhuo@...ron.com>
The CMD13 polling is only needed for the command with R1B Resp. For the
command with R1 Resp, such as open-ended multiple block read/write
(CMD18/25) commands, the device will just wait for its next paired command.
There is no need to poll device status through CMD13.
Meanwhile, based on the original change commit (mmc: block: Add CMD13 polling
for MMC IOCTLS with R1B response), and comment in __mmc_blk_ioctl_cmd(),
current code is not in line with its original purpose. So fix it with this patch.
Fixes: a0d4c7eb71dd ("mmc: block: Add CMD13 polling for MMC IOCTLS with R1B response")
Cc: stable@...r.kernel.org
Reported-by: Zhan Liu <zliua@...ron.com>
Signed-off-by: Zhan Liu <zliua@...ron.com>
Signed-off-by: Bean Huo <beanhuo@...ron.com>
---
drivers/mmc/core/block.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
index 8d3df0be0355..42e27a298218 100644
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
@@ -580,7 +580,7 @@ static int __mmc_blk_ioctl_cmd(struct mmc_card *card, struct mmc_blk_data *md,
memcpy(&(idata->ic.response), cmd.resp, sizeof(cmd.resp));
- if (idata->rpmb || (cmd.flags & MMC_RSP_R1B)) {
+ if (idata->rpmb || (cmd.flags & MMC_RSP_R1B) == MMC_RSP_R1B) {
/*
* Ensure RPMB/R1B command has completed by polling CMD13
* "Send Status".
--
2.17.1
Powered by blists - more mailing lists