From 36c159655637851978da5053a969946d082a6458 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 12 May 2021 10:11:40 +0200 Subject: [PATCH] Revert "mmc: block: Issue a cache flush only when it's enabled" This reverts commit 20d6f231f8f17ceb61e379b93aadca7c6042aa65 which showed up in 5.10.36 and broke the abi. It should not be needed in Android systems at this time so it is safe to revert. Bug: 161946584 Signed-off-by: Greg Kroah-Hartman Change-Id: If85580eb86669f957de49faee773a2ed7690bcd2 --- drivers/mmc/core/block.c | 4 ---- drivers/mmc/core/core.h | 9 --------- drivers/mmc/core/mmc.c | 7 ------- drivers/mmc/core/mmc_ops.c | 4 +++- 4 files changed, 3 insertions(+), 21 deletions(-) diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c index 91d3bbecf307..d46e6db5cd08 100644 --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c @@ -2236,10 +2236,6 @@ enum mmc_issued mmc_blk_mq_issue_rq(struct mmc_queue *mq, struct request *req) case MMC_ISSUE_ASYNC: switch (req_op(req)) { case REQ_OP_FLUSH: - if (!mmc_cache_enabled(host)) { - blk_mq_end_request(req, BLK_STS_OK); - return MMC_REQ_FINISHED; - } ret = mmc_blk_cqe_issue_flush(mq, req); break; case REQ_OP_READ: diff --git a/drivers/mmc/core/core.h b/drivers/mmc/core/core.h index db3c9c68875d..8032451abaea 100644 --- a/drivers/mmc/core/core.h +++ b/drivers/mmc/core/core.h @@ -29,7 +29,6 @@ struct mmc_bus_ops { int (*shutdown)(struct mmc_host *); int (*hw_reset)(struct mmc_host *); int (*sw_reset)(struct mmc_host *); - bool (*cache_enabled)(struct mmc_host *); }; void mmc_attach_bus(struct mmc_host *host, const struct mmc_bus_ops *ops); @@ -164,12 +163,4 @@ static inline void mmc_post_req(struct mmc_host *host, struct mmc_request *mrq, host->ops->post_req(host, mrq, err); } -static inline bool mmc_cache_enabled(struct mmc_host *host) -{ - if (host->bus_ops->cache_enabled) - return host->bus_ops->cache_enabled(host); - - return false; -} - #endif diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index 7494d595035e..9ce34e880033 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -2033,12 +2033,6 @@ static void mmc_detect(struct mmc_host *host) } } -static bool _mmc_cache_enabled(struct mmc_host *host) -{ - return host->card->ext_csd.cache_size > 0 && - host->card->ext_csd.cache_ctrl & 1; -} - static int _mmc_suspend(struct mmc_host *host, bool is_suspend) { int err = 0; @@ -2218,7 +2212,6 @@ static const struct mmc_bus_ops mmc_ops = { .alive = mmc_alive, .shutdown = mmc_shutdown, .hw_reset = _mmc_hw_reset, - .cache_enabled = _mmc_cache_enabled, }; /* diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c index ebad70e4481a..baa6314f69b4 100644 --- a/drivers/mmc/core/mmc_ops.c +++ b/drivers/mmc/core/mmc_ops.c @@ -988,7 +988,9 @@ int mmc_flush_cache(struct mmc_card *card) { int err = 0; - if (mmc_cache_enabled(card->host)) { + if (mmc_card_mmc(card) && + (card->ext_csd.cache_size > 0) && + (card->ext_csd.cache_ctrl & 1)) { err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_FLUSH_CACHE, 1, MMC_CACHE_FLUSH_TIMEOUT_MS);