diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 3d7ed43..abb5998 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -2756,9 +2756,12 @@ 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; i < MTD_MAX_OOBFREE_ENTRIES; i++) {
+	if (chip->ecc.layout->oobfree[i].length == 0)
+		break;
	chip->ecc.layout->oobavail +=
		chip->ecc.layout->oobfree[i].length;
+	}
	mtd->oobavail = chip->ecc.layout->oobavail;

______________________________________________________
