+++ /dev/null
---- a/drivers/mtd/bcm47xxpart.c
-+++ b/drivers/mtd/bcm47xxpart.c
-@@ -15,8 +15,12 @@
- #include <linux/mtd/mtd.h>
- #include <linux/mtd/partitions.h>
-
--/* 10 parts were found on sflash on Netgear WNDR4500 */
--#define BCM47XXPART_MAX_PARTS 12
-+/*
-+ * NAND flash on Netgear R6250 was verified to contain 15 partitions.
-+ * This will result in allocating too big array for some old devices, but the
-+ * memory will be freed soon anyway (see mtd_device_parse_register).
-+ */
-+#define BCM47XXPART_MAX_PARTS 20
-
- /*
- * Amount of bytes we read when analyzing each block of flash memory.
-@@ -168,18 +172,26 @@ static int bcm47xxpart_parse(struct mtd_
- i++;
- }
-
-- bcm47xxpart_add_part(&parts[curr_part++], "linux",
-- offset + trx->offset[i], 0);
-- i++;
-+ if (trx->offset[i]) {
-+ bcm47xxpart_add_part(&parts[curr_part++],
-+ "linux",
-+ offset + trx->offset[i],
-+ 0);
-+ i++;
-+ }
-
- /*
- * Pure rootfs size is known and can be calculated as:
- * trx->length - trx->offset[i]. We don't fill it as
- * we want to have jffs2 (overlay) in the same mtd.
- */
-- bcm47xxpart_add_part(&parts[curr_part++], "rootfs",
-- offset + trx->offset[i], 0);
-- i++;
-+ if (trx->offset[i]) {
-+ bcm47xxpart_add_part(&parts[curr_part++],
-+ "rootfs",
-+ offset + trx->offset[i],
-+ 0);
-+ i++;
-+ }
-
- last_trx_part = curr_part - 1;
-