Hi Ulf, This patchset consolidates polling for busy by using mmc_poll_for_busy() to avoid re-invent the wheel for other code block. The only leftover is mmc_test which not just poll for busy but also check if the host drivers abuse MMC_CAP_WAIT_WHILE_BUSY. V3 is rebased on top and the final one patch restores the throttle of calling to MMC_SEND_STATUS during mmc_do_erase() and accessing RPMB. Then it goes a little further for trying to improve the responsiveness once only one CPU is online. Changes in v3: - rebase - remove mmc_host_is_spi() from mmc_blk_card_busy() as mmc_poll_for_busy() has considered it. Changes in v2: - remove goto label - improve the patch sequence and fold in all related changes to make the patch look better. Shawn Lin (9): mmc: core: Move the sanity check of busy detection into mmc_poll_for_busy() mmc: core: Adjust and reuse the macro of R1_STATUS(x) mmc: core: Propgate device status and assigning busy indicator in mmc_poll_for_busy() mmc: core: Distinguish the caller of mmc_poll_for_busy() by new paramter mmc: core: Export mmc_poll_for_busy() mmc: core: Use mmc_poll_for_busy() for polling busy in mmc_do_erase() mmc: core: Use mmc_poll_for_busy() for polling busy in __mmc_blk_ioctl_cmd() mmc: block: Use mmc_poll_for_busy() for polling busy in mmc block layer mmc: core: Improve system responsiveness when polling for busy drivers/mmc/core/block.c | 98 +++++++++------------------------------------- drivers/mmc/core/core.c | 53 ++++--------------------- drivers/mmc/core/mmc_ops.c | 84 ++++++++++++++++++++++++++++----------- drivers/mmc/core/mmc_ops.h | 4 ++ include/linux/mmc/mmc.h | 2 +- 5 files changed, 93 insertions(+), 148 deletions(-) -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html