Message ID | 200904211951.21270.david-b@pacbell.net |
---|---|
State | New, archived |
Headers | show |
On Tue, 2009-04-21 at 19:51 -0700, David Brownell wrote: > From: David Brownell <dbrownell@users.sourceforge.net> > > Resolve issue noted by Sneha: when computing oobavail from > the list of free areas in the OOB, don't assume there will > always be an unused slot at the end. With ECC_HW_SYNDROME > and 4KB page chips, it's fairly likely there *won't* be one. > > Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> > Cc: "Narnakaje, Snehaprabha" <nsnehaprabha@ti.com>" Hi, not that I tested your stuff, but it looks OK for me. So I've added the series to my l2-mtd tree, which means I'll ping dwmw2 about pulling it at some point. No guarantees, though.
--- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c @@ -2756,7 +2756,8 @@ int nand_scan_tail(struct mtd_info *mtd) * the out of band area */ chip->ecc.layout->oobavail = 0; - for (i = 0; chip->ecc.layout->oobfree[i].length; i++) + for (i = 0; chip->ecc.layout->oobfree[i].length + && i < ARRAY_SIZE(chip->ecc.layout->oobfree); i++) chip->ecc.layout->oobavail += chip->ecc.layout->oobfree[i].length; mtd->oobavail = chip->ecc.layout->oobavail;