From: Konstantin Dorfman <kdorfman@codeaurora.org>
To: Seungwon Jeon <tgih.jun@samsung.com>
Cc: linux-mmc@vger.kernel.org, 'Chris Ball' <cjb@laptop.org>,
'Per Forlin' <per.forlin@linaro.org>
Subject: Re: [PATCH v2] mmc: queue: exclude asynchronous transfer for special request
Date: Thu, 27 Dec 2012 15:21:16 +0200 [thread overview]
Message-ID: <50DC4B4C.8090805@codeaurora.org> (raw)
In-Reply-To: <000701cde309$f5ed8fd0$e1c8af70$%jun@samsung.com>
Reviewed-by: Konstantin Dorfman <kdorfman@codeaurora.org>
On 12/26/2012 03:40 AM, Seungwon Jeon wrote:
> Unlike normal r/w request, special requests(discard, flush)
> is finished with a one-time issue_fn. Request change to
> mqrq_prev makes unnecessary call.
>
> Signed-off-by: Seungwon Jeon <tgih.jun@samsung.com>
> ---
> drivers/mmc/card/queue.c | 10 ++++++++++
> 1 files changed, 10 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/mmc/card/queue.c b/drivers/mmc/card/queue.c
> index fadf52e..c7e8716 100644
> --- a/drivers/mmc/card/queue.c
> +++ b/drivers/mmc/card/queue.c
> @@ -24,6 +24,8 @@
>
> #define MMC_QUEUE_SUSPENDED (1 << 0)
>
> +#define MMC_REQ_SPECIAL_MASK (REQ_DISCARD | REQ_FLUSH)
> +
> /*
> * Prepare a MMC request. This just filters out odd stuff.
> */
> @@ -58,6 +60,7 @@ static int mmc_queue_thread(void *d)
> do {
> struct request *req = NULL;
> struct mmc_queue_req *tmp;
> + unsigned int cmd_flags = 0;
>
> spin_lock_irq(q->queue_lock);
> set_current_state(TASK_INTERRUPTIBLE);
> @@ -67,12 +70,19 @@ static int mmc_queue_thread(void *d)
>
> if (req || mq->mqrq_prev->req) {
> set_current_state(TASK_RUNNING);
> + cmd_flags = req ? req->cmd_flags : 0;
> mq->issue_fn(mq, req);
>
> /*
> * Current request becomes previous request
> * and vice versa.
> + * In case of special requests, current request
> + * has been finished. Do not remain it to previous
> + * request.
> */
> + if (cmd_flags & MMC_REQ_SPECIAL_MASK)
> + mq->mqrq_cur->req = NULL;
> +
> mq->mqrq_prev->brq.mrq.data = NULL;
> mq->mqrq_prev->req = NULL;
> tmp = mq->mqrq_prev;
>
--
Konstantin Dorfman,
QUALCOMM ISRAEL, on behalf of Qualcomm Innovation Center,
Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
next prev parent reply other threads:[~2012-12-27 13:21 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-26 1:40 [PATCH v2] mmc: queue: exclude asynchronous transfer for special request Seungwon Jeon
2012-12-27 13:21 ` Konstantin Dorfman [this message]
2013-01-14 19:26 ` Chris Ball
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=50DC4B4C.8090805@codeaurora.org \
--to=kdorfman@codeaurora.org \
--cc=cjb@laptop.org \
--cc=linux-mmc@vger.kernel.org \
--cc=per.forlin@linaro.org \
--cc=tgih.jun@samsung.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.