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

Ezequiel Garcia ezequiel.garcia at free-electrons.com
Sat Apr 12 07:40:00 PDT 2014


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
http://free-electrons.com



More information about the linux-mtd mailing list