Re: [PATCH 0/4] mtd: Fix wrong bad block account in ECC stats

Ezequiel Garcia
2014-04-12T14:40:59Z

On Mar 21, Ezequiel Garcia wrote:
> This series addresses the wrong bad and bbt block accounting we currently
> have in MTD.
>
> Notice that this is a very old issue, probably around since the dawn of time,
> and nobody seem to care much about it. However, with the introduction of
> the sysfs ECC stats access, it's easier to access this stats and easier to
> see the issue.
>
> Currently, a device with eight blocks used for the BBT in the last partition
> would show (getting ECC stats from sysfs):
>
> $ cat /sys/class/mtd/mtd2/ecc_stats
> 0 0 10 0
> 0 0 4 0
> 0 0 8 0
>
> The third column is the badblocks field in the ecc_stats structure. The
> number of badblocks is obtained for each partition near the end of
> allocate_partition(). The partition is scanned for badblocks and this
> number is updated. This series fixes this by adding a check for BBT reserved
> blocks, showing:
>
> $ cat /sys/class/mtd/mtd2/ecc_stats
> 0 0 10 0
> 0 0 4 0
> 0 0 0 8
>
> The first two patches have already been posted. I'm resending them here for
> conveniency.
>
> Ezequiel Garcia (4):
> mtd: Add sysfs attr to expose ECC stats
> mtd: nand: Account the blocks used by the BBT in the ecc_stats
> mtd: Introduce mtd_block_isreserved()
> mtd: Account for BBT blocks when a partition is being allocated
>
> drivers/mtd/mtdcore.c | 24 ++++++++++++++++++++++++
> drivers/mtd/mtdpart.c | 13 ++++++++++++-
> drivers/mtd/nand/nand_base.c | 1 +
> drivers/mtd/nand/nand_bbt.c | 16 ++++++++++++++++
> include/linux/mtd/mtd.h | 2 ++
> include/linux/mtd/nand.h | 1 +
> 6 files changed, 56 insertions(+), 1 deletion(-)
>

Any comments?

--
Ezequiel García, Free Electrons
Embedded Linux, Kernel and Android Engineering