From: Linus Walleij <linus.walleij@linaro.org>
To: linux-mmc@vger.kernel.org, linux-block@vger.kernel.org,
Ulf Hansson <ulf.hansson@linaro.org>
Cc: Chunyan Zhang <zhang.chunyan@linaro.org>,
Baolin Wang <baolin.wang@linaro.org>,
Paolo Valente <paolo.valente@linaro.org>,
Linus Walleij <linus.walleij@linaro.org>
Subject: [PATCH 2/6] mmc: block: break out mmc_blk_rw_start_new()
Date: Tue, 24 Jan 2017 11:17:53 +0100 [thread overview]
Message-ID: <20170124101757.19676-3-linus.walleij@linaro.org> (raw)
In-Reply-To: <20170124101757.19676-1-linus.walleij@linaro.org>
As a step toward breaking apart the very complex function
mmc_blk_issue_rw_rq() we break out the code to start a new
request.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
drivers/mmc/core/block.c | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
index 14efe92a14ef..b60d1fb3a07a 100644
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
@@ -1609,6 +1609,22 @@ static void mmc_blk_rw_cmd_abort(struct mmc_card *card, struct request *req)
blk_rq_cur_bytes(req));
}
+static void mmc_blk_rw_start_new(struct mmc_queue *mq, struct mmc_card *card,
+ struct request *req)
+{
+ if (!req)
+ return;
+
+ if (mmc_card_removed(card)) {
+ req->rq_flags |= RQF_QUIET;
+ blk_end_request_all(req, -EIO);
+ } else {
+ mmc_blk_rw_rq_prep(mq->mqrq_cur, card, 0, mq);
+ mmc_start_req(card->host,
+ &mq->mqrq_cur->mmc_active, NULL);
+ }
+}
+
static int mmc_blk_issue_rw_rq(struct mmc_queue *mq, struct request *rqc)
{
struct mmc_blk_data *md = mq->blkdata;
@@ -1751,16 +1767,7 @@ static int mmc_blk_issue_rw_rq(struct mmc_queue *mq, struct request *rqc)
mmc_blk_rw_cmd_abort(card, req);
start_new_req:
- if (rqc) {
- if (mmc_card_removed(card)) {
- rqc->rq_flags |= RQF_QUIET;
- blk_end_request_all(rqc, -EIO);
- } else {
- mmc_blk_rw_rq_prep(mq->mqrq_cur, card, 0, mq);
- mmc_start_req(card->host,
- &mq->mqrq_cur->mmc_active, NULL);
- }
- }
+ mmc_blk_rw_start_new(mq, card, rqc);
return 0;
}
--
2.9.3
next prev parent reply other threads:[~2017-01-24 10:18 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-24 10:17 [PATCH 0/6] mmc: block: command issue cleanups Linus Walleij
2017-01-24 10:17 ` [PATCH 1/6] mmc: block: break out mmc_blk_rw_cmd_abort() Linus Walleij
2017-01-25 9:23 ` Mateusz Nowak
2017-01-26 15:01 ` Linus Walleij
2017-01-24 10:17 ` Linus Walleij [this message]
2017-01-24 10:17 ` [PATCH 3/6] mmc: block: do not assign mq_rq when aborting command Linus Walleij
2017-01-24 10:17 ` [PATCH 4/6] mmc: block: inline command abortions Linus Walleij
2017-01-24 10:17 ` [PATCH 5/6] mmc: block: introduce new_areq and old_areq Linus Walleij
2017-01-24 10:17 ` [PATCH 6/6] mmc: block: stop passing around pointless return values Linus Walleij
2017-01-26 8:07 ` [PATCH 0/6] mmc: block: command issue cleanups Ulf Hansson
2017-01-27 7:58 ` Ulf Hansson
2017-01-27 9:46 ` Maxime Ripard
2017-01-30 13:05 ` Linus Walleij
2017-01-30 13:30 ` Linus Walleij
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170124101757.19676-3-linus.walleij@linaro.org \
--to=linus.walleij@linaro.org \
--cc=baolin.wang@linaro.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=paolo.valente@linaro.org \
--cc=ulf.hansson@linaro.org \
--cc=zhang.chunyan@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox