From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: Pavel Machek <pavel@ucw.cz>
Cc: richard@nod.at, mark.marshall@omicronenergy.com,
linux-kernel@vger.kernel.org, marek.vasut@gmail.com,
linux-mtd@lists.infradead.org, Dipen.Dudhat@freescale.com,
cyrille.pitchen@atmel.com, computersforpeace@gmail.com,
dwmw2@infradead.org, prabhakar@freescale.com,
b44839@freescale.com
Subject: Re: tango_nand: is logic right in error cases? (was Re: fsl_ifc_nand: are blank pages protected by ECC?)
Date: Mon, 24 Apr 2017 09:12:59 +0200 [thread overview]
Message-ID: <20170424091259.3f091129@bbrezillon> (raw)
In-Reply-To: <20170423095845.GA8692@amd>
On Sun, 23 Apr 2017 11:58:45 +0200
Pavel Machek <pavel@ucw.cz> wrote:
> Hi!
>
> > > Maybe I figured it out. Unfortunately, it is only compile tested. Does
> > > it look approximately right?
> >
> > Yep that's definitely better. Just one thing missing (see below),
> > otherwise it looks good.
>
> I'm copying from tango_nand, therefore I had to check tango_nand, too.
>
> static int check_erased_page(struct nand_chip *chip, u8 *buf)
> {
> ...
> res = nand_check_erased_ecc_chunk(buf, pkt_size, ecc, ecc_size,
> meta, meta_len,
> chip->ecc.strength);
> if (res < 0)
> mtd->ecc_stats.failed++;
> else
> mtd->ecc_stats.corrected += res;
>
> bitflips = max(res, bitflips);
> ...
> return bitflips;
> }
>
> static int tango_read_page(struct mtd_info *mtd, struct nand_chip *chip,
> u8 *buf, int oob_required, int page)
> {
> ...
> res = decode_error_report(nfc);
> if (res < 0) {
> chip->ecc.read_oob_raw(mtd, chip, page);
> res = check_erased_page(chip, buf);
> }
>
> return res;
> }
>
>
> So nand_check_erased_ecc_chunk() returns < 0 (failed ECC), but then we
> perform max() with bitflips (lets say 1, correctable ECC) and return
> 1? tango_read_page then returns 1 (correctable ECC) forgetting about
> failed ECC...?
Yep, that's expected, see what's done in the core to detect
uncorrectable errors and return EBADMSG when appropriate [1].
[1]http://lxr.free-electrons.com/source/drivers/mtd/nand/nand_base.c#L2033
prev parent reply other threads:[~2017-04-24 7:13 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-19 12:13 fsl_ifc_nand: are blank pages protected by ECC? Pavel Machek
2017-04-19 21:18 ` Boris Brezillon
2017-04-19 22:15 ` Pavel Machek
2017-04-19 22:27 ` Boris Brezillon
2017-04-20 11:40 ` Pavel Machek
2017-04-20 12:15 ` Boris Brezillon
2017-04-21 10:51 ` [PATCH] nand_base: optimize checking of erased buffers Pavel Machek
2017-05-17 11:27 ` Mason
2017-05-17 11:39 ` Mason
2017-05-17 11:52 ` Pavel Machek
2017-05-17 12:22 ` [PATCH] fsl_ifc_nand: fix handing of bit flips in erased nand Pavel Machek
2017-05-17 12:32 ` Boris Brezillon
2017-05-17 13:00 ` Pavel Machek
2017-05-17 13:25 ` Boris Brezillon
2017-05-17 20:03 ` [PATCH] mtd: nand: fsl_ifc: fix handing of bit flips in erased pages Pavel Machek
2017-05-31 20:59 ` [PATCHv2] " Pavel Machek
2017-05-31 22:59 ` Darwin Dingel
2017-06-01 1:09 ` Darwin Dingel
2017-06-01 13:12 ` Pavel Machek
2017-06-01 13:21 ` Boris Brezillon
2017-06-07 7:31 ` Boris Brezillon
2017-04-21 10:08 ` fsl_ifc_nand: are blank pages protected by ECC? Pavel Machek
2017-04-21 10:12 ` Richard Weinberger
2017-04-21 12:04 ` Boris Brezillon
2017-04-21 13:37 ` Pavel Machek
2017-04-21 13:49 ` Boris Brezillon
2017-04-22 7:01 ` Pavel Machek
2017-04-22 10:40 ` [PATCH] tango_nand.c: fix ecc.stats_corrected in empty flash case Pavel Machek
2017-04-24 8:58 ` Marc Gonzalez
2017-04-24 9:03 ` Pavel Machek
2017-05-02 9:42 ` Boris Brezillon
2017-05-02 11:52 ` Marc Gonzalez
2017-05-02 12:20 ` Boris Brezillon
2017-05-03 20:02 ` Pavel Machek
2017-05-03 20:04 ` Pavel Machek
2017-05-04 8:42 ` Boris Brezillon
2017-05-12 15:34 ` [PATCH] mtd: nand: tango: Update ecc_stats.corrected Marc Gonzalez
2017-05-15 8:56 ` Boris Brezillon
2017-05-15 20:47 ` Boris Brezillon
2017-05-17 12:04 ` [PATCH] tango_nand.c: fix ecc.stats_corrected in empty flash case Pavel Machek
2017-04-23 9:58 ` tango_nand: is logic right in error cases? (was Re: fsl_ifc_nand: are blank pages protected by ECC?) Pavel Machek
2017-04-24 7:12 ` 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=20170424091259.3f091129@bbrezillon \
--to=boris.brezillon@free-electrons.com \
--cc=Dipen.Dudhat@freescale.com \
--cc=b44839@freescale.com \
--cc=computersforpeace@gmail.com \
--cc=cyrille.pitchen@atmel.com \
--cc=dwmw2@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=marek.vasut@gmail.com \
--cc=mark.marshall@omicronenergy.com \
--cc=pavel@ucw.cz \
--cc=prabhakar@freescale.com \
--cc=richard@nod.at \
/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.