From: Luis Henriques <luis.henriques@canonical.com>
To: Kevin Cernekee <cernekee@chromium.org>
Cc: stable <stable@vger.kernel.org>,
Richard Weinberger <richard@nod.at>,
Ezequiel Garcia <ezequiel.garcia@imgtec.com>
Subject: Re: Please add 98fb1ffd8154890d7051750e61ff5548c3ee2ab2
Date: Tue, 29 Sep 2015 10:16:50 +0100 [thread overview]
Message-ID: <20150929091650.GA2536@ares> (raw)
In-Reply-To: <CAJzqFtZDY9VUynqC=-0f79pptEE4PYF4Y9TFB-2ymdhi6G_n+A@mail.gmail.com>
On Mon, Sep 28, 2015 at 04:12:55PM -0500, Kevin Cernekee wrote:
> On Mon, Sep 28, 2015 at 4:03 PM, Richard Weinberger <richard@nod.at> wrote:
> > CC'in patch authors.
> >
> > Am 28.09.2015 um 15:29 schrieb Luis Henriques:
> >> On Tue, Sep 15, 2015 at 04:48:07PM +0200, Richard Weinberger wrote:
> >>> Hi!
> >>>
> >>> Can you please add this commit to stable?
> >>> commit 98fb1ffd8154890d7051750e61ff5548c3ee2ab2
> >>> Author: Kevin Cernekee <cernekee@chromium.org>
> >>> Date: Wed Apr 22 09:30:53 2015 -0300
> >>>
> >>> UBI: block: Add missing cache flushes
> >>>
> >>> The fix affects all kernels >= v3.15.
> >>>
> >>
> >> I was trying to apply this commit to 3.16, but it requires a backport.
> >> Could you please confirm the following backport is correct? It can
> >> probably be applied to other stable kernels, but I haven't check.
> >>
> >> Cheers,
> >> --
> >> Lu�s
> >>
> >> From e781e504616d2652e9fc11f6536dd8be221298f9 Mon Sep 17 00:00:00 2001
> >> From: Kevin Cernekee <cernekee@chromium.org>
> >> Date: Wed, 22 Apr 2015 09:30:53 -0300
> >> Subject: [PATCH] UBI: block: Add missing cache flushes
> >>
> >> commit 98fb1ffd8154890d7051750e61ff5548c3ee2ab2 upstream.
> >>
> >> Block drivers are responsible for calling flush_dcache_page() on each
> >> BIO request. This operation keeps the I$ coherent with the D$ on
> >> architectures that don't have hardware coherency support. Without this
> >> flush, random crashes are seen when executing user programs from an ext4
> >> filesystem backed by a ubiblock device.
> >>
> >> This patch is based on the change implemented in commit 2d4dc890b5c8
> >> ("block: add helpers to run flush_dcache_page() against a bio and a
> >> request's pages").
> >>
> >> Fixes: 9d54c8a33eec ("UBI: R/O block driver on top of UBI volumes")
> >> Signed-off-by: Kevin Cernekee <cernekee@chromium.org>
> >> Signed-off-by: Ezequiel Garcia <ezequiel.garcia@imgtec.com>
> >> Signed-off-by: Richard Weinberger <richard@nod.at>
> >> [ luis: backported to 3.16: adjusted context ]
> >> Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
> >> ---
> >> drivers/mtd/ubi/block.c | 1 +
> >> 1 file changed, 1 insertion(+)
> >>
> >> diff --git a/drivers/mtd/ubi/block.c b/drivers/mtd/ubi/block.c
> >> index 8457df7ec5af..d3fbda7eae98 100644
> >> --- a/drivers/mtd/ubi/block.c
> >> +++ b/drivers/mtd/ubi/block.c
> >> @@ -275,6 +275,7 @@ static void ubiblock_do_work(struct work_struct *work)
> >> spin_unlock_irq(rq->queue_lock);
> >> res = do_ubiblock_request(dev, req);
> >> spin_lock_irq(rq->queue_lock);
> >> + rq_flush_dcache_pages(req);
> >>
> >> /*
> >> * If we're done with this request,
> >>
>
> In our project's 3.14 tree I added the flush in a slightly different
> place, but it looks like your patch would work too:
>
> https://chromium-review.googlesource.com/#/c/251693/2/drivers/mtd/ubi/block.c
Thank you, Kevin. I'll just use your 3.14 backport as it doesn't seem
likely that this operation actually requires the rq->queue_lock (and it's
already tested!).
Just for completeness, I'm attaching the backport below.
Cheers,
--
Lu�s
>From 41e93187e983724944d9c70ddd822cada09004c8 Mon Sep 17 00:00:00 2001
From: Kevin Cernekee <cernekee@chromium.org>
Date: Wed, 22 Apr 2015 09:30:53 -0300
Subject: [PATCH] UBI: block: Add missing cache flushes
commit 98fb1ffd8154890d7051750e61ff5548c3ee2ab2 upstream.
Block drivers are responsible for calling flush_dcache_page() on each
BIO request. This operation keeps the I$ coherent with the D$ on
architectures that don't have hardware coherency support. Without this
flush, random crashes are seen when executing user programs from an ext4
filesystem backed by a ubiblock device.
This patch is based on the change implemented in commit 2d4dc890b5c8
("block: add helpers to run flush_dcache_page() against a bio and a
request's pages").
Fixes: 9d54c8a33eec ("UBI: R/O block driver on top of UBI volumes")
Signed-off-by: Kevin Cernekee <cernekee@chromium.org>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@imgtec.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
[ luis: backported to 3.16: used Kevin's backport to 3.14 ]
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
---
drivers/mtd/ubi/block.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/mtd/ubi/block.c b/drivers/mtd/ubi/block.c
index 8457df7ec5af..8b4a182d7cf9 100644
--- a/drivers/mtd/ubi/block.c
+++ b/drivers/mtd/ubi/block.c
@@ -255,6 +255,7 @@ static int do_ubiblock_request(struct ubiblock *dev, struct request *req)
mutex_lock(&dev->dev_mutex);
ret = ubiblock_read(dev, bio_data(req->bio), sec, len);
mutex_unlock(&dev->dev_mutex);
+ rq_flush_dcache_pages(req);
return ret;
}
prev parent reply other threads:[~2015-09-29 9:16 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-15 14:48 Please add 98fb1ffd8154890d7051750e61ff5548c3ee2ab2 Richard Weinberger
2015-09-28 13:29 ` Luis Henriques
2015-09-28 21:03 ` Richard Weinberger
2015-09-28 21:12 ` Kevin Cernekee
2015-09-29 9:16 ` Luis Henriques [this message]
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=20150929091650.GA2536@ares \
--to=luis.henriques@canonical.com \
--cc=cernekee@chromium.org \
--cc=ezequiel.garcia@imgtec.com \
--cc=richard@nod.at \
--cc=stable@vger.kernel.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 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.