From: Boris Brezillon <boris.brezillon@bootlin.com>
To: Joakim Tjernlund <joakim.tjernlund@infinera.com>
Cc: "linux-mtd @ lists . infradead . org" <linux-mtd@lists.infradead.org>
Subject: Re: [PATCH 2/2] mtd: cfi_cmdset_0002: Avoid point less unlocking/locking
Date: Tue, 5 Jun 2018 17:14:43 +0200 [thread overview]
Message-ID: <20180605171443.29365913@bbrezillon> (raw)
In-Reply-To: <20180605140710.8624-2-joakim.tjernlund@infinera.com>
On Tue, 5 Jun 2018 16:07:10 +0200
Joakim Tjernlund <joakim.tjernlund@infinera.com> wrote:
> cfi_ppb_unlock() walks all flash chips when unlocking sectors.
> This is a waste when crossing chip boundaris unaffected
^ boundaries.
> by the unlock operation.
AFAICT there are 2 unrelated changes in this commit:
1/ Fix the boundary check which is broken if the unlock operation
crosses a chip boundary (adr is reset to 0 when that happens).
2/ Avoid unlocking chips that are outside the requested unlock range.
#1 is a fix, #2 is not. You should split that in 2 different commits,
and tag #1 with Fixes and Cc-stable.
>
> Fixes: 1648eaaa1575e
> Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com>
> ---
> drivers/mtd/chips/cfi_cmdset_0002.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
> index c74c53b886be..ee8b70e54298 100644
> --- a/drivers/mtd/chips/cfi_cmdset_0002.c
> +++ b/drivers/mtd/chips/cfi_cmdset_0002.c
> @@ -2669,7 +2669,7 @@ static int __maybe_unused cfi_ppb_unlock(struct mtd_info *mtd, loff_t ofs,
> * sectors shall be unlocked, so lets keep their locking
> * status at "unlocked" (locked=0) for the final re-locking.
> */
> - if ((adr < ofs) || (adr >= (ofs + len))) {
> + if ((offset < ofs) || (offset >= (ofs + len))) {
> sect[sectors].chip = &cfi->chips[chipnum];
> sect[sectors].adr = adr;
> sect[sectors].locked = do_ppb_xxlock(
> @@ -2685,6 +2685,8 @@ static int __maybe_unused cfi_ppb_unlock(struct mtd_info *mtd, loff_t ofs,
> i++;
>
> if (adr >> cfi->chipshift) {
> + if (offset >= (ofs + len))
> + break;
> adr = 0;
> chipnum++;
> if (chipnum >= cfi->numchips)
next prev parent reply other threads:[~2018-06-05 15:15 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-05 14:07 [PATCH 1/2] mtd: cfi_cmdset_0002: fix SEGV unlocking multiple chips Joakim Tjernlund
2018-06-05 14:07 ` [PATCH 2/2] mtd: cfi_cmdset_0002: Avoid point less unlocking/locking Joakim Tjernlund
2018-06-05 15:14 ` Boris Brezillon [this message]
2018-06-05 16:57 ` Joakim Tjernlund
2018-06-06 10:15 ` Joakim Tjernlund
2018-06-19 17:23 ` Joakim Tjernlund
2018-06-05 15:02 ` [PATCH 1/2] mtd: cfi_cmdset_0002: fix SEGV unlocking multiple chips Boris Brezillon
2018-06-05 15:26 ` Boris Brezillon
2018-06-05 15:33 ` Joakim Tjernlund
2018-06-06 10:13 ` [PATCH v2 1/4] mtd: cfi_cmdset_0002: Use right chip in do_ppb_xxlock() Joakim Tjernlund
2018-06-06 10:13 ` [PATCH v2 2/4] mtd: cfi_cmdset_0002: fix SEGV unlocking multiple chips Joakim Tjernlund
2018-06-20 9:06 ` Boris Brezillon
2018-06-06 10:13 ` [PATCH v2 3/4] mtd: cfi_cmdset_0002: Avoid point less unlocking/locking Joakim Tjernlund
2018-06-20 9:14 ` Boris Brezillon
2018-06-20 11:10 ` Joakim Tjernlund
2018-06-20 11:54 ` Boris Brezillon
2018-06-06 10:13 ` [PATCH v2 4/4] mtd: cfi_cmdset_0002: Avoid walking all chips when unlocking Joakim Tjernlund
2018-06-20 9:25 ` Boris Brezillon
2018-06-20 11:10 ` Joakim Tjernlund
2018-06-20 12:19 ` Boris Brezillon
2018-06-20 15:07 ` Joakim Tjernlund
2018-06-20 9:03 ` [PATCH v2 1/4] mtd: cfi_cmdset_0002: Use right chip in do_ppb_xxlock() Boris Brezillon
2018-06-20 11:10 ` Joakim Tjernlund
2018-06-22 11:35 ` Boris Brezillon
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=20180605171443.29365913@bbrezillon \
--to=boris.brezillon@bootlin.com \
--cc=joakim.tjernlund@infinera.com \
--cc=linux-mtd@lists.infradead.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.