| Submitter | David Brownell |
|---|---|
| Date | April 22, 2009, 2:51 a.m. |
| Message ID | <200904211951.21270.david-b@pacbell.net> |
| Download | mbox | patch |
| Permalink | /patch/26289/ |
| State | New |
| Headers | show |
Comments
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.
Patch
--- 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;