[PATCH v4 1/3] mtd: mtdpart: Make ECC stat handling consistent

Boris Brezillon boris.brezillon at free-electrons.com
Wed Jan 10 13:07:18 PST 2018


On Wed, 10 Jan 2018 21:27:34 +0100
Robert Jarzmik <robert.jarzmik at free.fr> wrote:

> Boris Brezillon <boris.brezillon at free-electrons.com> writes:
> 
> > part_read() and part_read_oob() where counting ECC failures and  
> Typo: s/where/were.

I'll fix the typo.

> 
> > diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
> > index be088bccd593..283e8526713b 100644
> > --- a/drivers/mtd/mtdpart.c
> > +++ b/drivers/mtd/mtdpart.c
> > @@ -105,6 +105,7 @@ static int part_read_oob(struct mtd_info *mtd, loff_t from,
> >  		struct mtd_oob_ops *ops)
> >  {
> >  	struct mtd_part *part = mtd_to_part(mtd);
> > +	struct mtd_ecc_stats stats;
> >  	int res;
> >  
> >  	if (from >= mtd->size)
> > @@ -127,12 +128,12 @@ static int part_read_oob(struct mtd_info *mtd, loff_t from,
> >  	}
> >  
> >  	res = part->parent->_read_oob(part->parent, from + part->offset, ops);
> > -	if (unlikely(res)) {
> > -		if (mtd_is_bitflip(res))
> > -			mtd->ecc_stats.corrected++;
> > -		if (mtd_is_eccerr(res))
> > -			mtd->ecc_stats.failed++;
> > -	}
> > +	if (unlikely(mtd_is_eccerr(res)))
> > +		mtd->ecc_stats.failed +=
> > +			part->parent->ecc_stats.failed - stats.failed;  
> stats is used uninitialized, but I suppose you've already caught that.

Yep, already fixed in v5.

Thanks,

Boris



More information about the linux-mtd mailing list