From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: Miquel Raynal <miquel.raynal@free-electrons.com>
Cc: Richard Weinberger <richard@nod.at>,
David Woodhouse <dwmw2@infradead.org>,
Brian Norris <computersforpeace@gmail.com>,
Marek Vasut <marek.vasut@gmail.com>,
Cyrille Pitchen <cyrille.pitchen@wedev4u.fr>,
linux-mtd@lists.infradead.org, stable@vger.kernel.org
Subject: Re: [PATCH v3] mtd: nand: Fix nand_do_read_oob() return value
Date: Fri, 12 Jan 2018 15:05:13 +0100 [thread overview]
Message-ID: <20180112150513.588294c0@bbrezillon> (raw)
In-Reply-To: <20180112091336.10709-1-miquel.raynal@free-electrons.com>
On Fri, 12 Jan 2018 10:13:36 +0100
Miquel Raynal <miquel.raynal@free-electrons.com> wrote:
> Starting from commit 041e4575f034 ("mtd: nand: handle ECC errors in
> OOB"), nand_do_read_oob() (from the NAND core) did return 0 or a
> negative error, and the MTD layer expected it.
>
> However, the trend for the NAND layer is now to return an error or a
> positive number of bitflips. Deciding which status to return to the user
> belongs to the MTD layer.
>
> Commit e47f68587b82 ("mtd: check for max_bitflips in mtd_read_oob()")
> brought this logic to the mtd_read_oob() function while the return value
> coming from nand_do_read_oob() (called by the ->_read_oob() hook) was
> left unchanged.
>
> Fixes: e47f68587b82 ("mtd: check for max_bitflips in mtd_read_oob()")
> Cc: stable@vger.kernel.org
> Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com>
Applied after fixing the bug I mentioned earlier.
Thanks,
Boris
> ---
>
>
> Changes since v2:
> - Correctly return the maximum number of bitflips, not the number of
> bitflips of the last chunk only.
>
> Changes since v1:
> - s/->ecc.read_oob() hook/->_read_oob() hook/ in the commit message
> - Fixed the compilation issue
>
>
> drivers/mtd/nand/nand_base.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
> index 469220065b8b..e4e39890a975 100644
> --- a/drivers/mtd/nand/nand_base.c
> +++ b/drivers/mtd/nand/nand_base.c
> @@ -3794,6 +3794,7 @@ EXPORT_SYMBOL(nand_write_oob_syndrome);
> static int nand_do_read_oob(struct mtd_info *mtd, loff_t from,
> struct mtd_oob_ops *ops)
> {
> + unsigned int max_bitflips = 0;
> int page, realpage, chipnr;
> struct nand_chip *chip = mtd_to_nand(mtd);
> struct mtd_ecc_stats stats;
> @@ -3855,6 +3856,8 @@ static int nand_do_read_oob(struct mtd_info *mtd, loff_t from,
> if (!readlen)
> break;
>
> + max_bitflips = max_t(unsigned int, max_bitflips, ret);
> +
> /* Increment page address */
> realpage++;
>
> @@ -3876,7 +3879,7 @@ static int nand_do_read_oob(struct mtd_info *mtd, loff_t from,
> if (mtd->ecc_stats.failed - stats.failed)
> return -EBADMSG;
>
> - return mtd->ecc_stats.corrected - stats.corrected ? -EUCLEAN : 0;
> + return max_bitflips;
> }
>
> /**
prev parent reply other threads:[~2018-01-12 14:05 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-12 9:13 [PATCH v3] mtd: nand: Fix nand_do_read_oob() return value Miquel Raynal
2018-01-12 9:30 ` Boris Brezillon
2018-01-12 14:05 ` Boris Brezillon [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=20180112150513.588294c0@bbrezillon \
--to=boris.brezillon@free-electrons.com \
--cc=computersforpeace@gmail.com \
--cc=cyrille.pitchen@wedev4u.fr \
--cc=dwmw2@infradead.org \
--cc=linux-mtd@lists.infradead.org \
--cc=marek.vasut@gmail.com \
--cc=miquel.raynal@free-electrons.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.