aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-3.14/050-mtd-bcm47xxpart-backports-from-3.19.patch
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2014-11-08 21:41:21 +0000
committerRafał Miłecki <zajec5@gmail.com>2014-11-08 21:41:21 +0000
commitdd2e536a76874f71ce8cae0826a6a03dc58740a7 (patch)
tree50bad8d605a5c895ded4be78fd3340cd54e4752a /target/linux/generic/patches-3.14/050-mtd-bcm47xxpart-backports-from-3.19.patch
parent6e11539b3e44c77d6ffa55d22fd9e117a1c7c79d (diff)
downloadmaster-187ad058-dd2e536a76874f71ce8cae0826a6a03dc58740a7.tar.gz
master-187ad058-dd2e536a76874f71ce8cae0826a6a03dc58740a7.tar.bz2
master-187ad058-dd2e536a76874f71ce8cae0826a6a03dc58740a7.zip
kernel: backport bcm47xxpart changes queued for 3.19
Signed-off-by: Rafał Miłecki <zajec5@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43223 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/generic/patches-3.14/050-mtd-bcm47xxpart-backports-from-3.19.patch')
-rw-r--r--target/linux/generic/patches-3.14/050-mtd-bcm47xxpart-backports-from-3.19.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/target/linux/generic/patches-3.14/050-mtd-bcm47xxpart-backports-from-3.19.patch b/target/linux/generic/patches-3.14/050-mtd-bcm47xxpart-backports-from-3.19.patch
new file mode 100644
index 0000000000..b2d53f9f8a
--- /dev/null
+++ b/target/linux/generic/patches-3.14/050-mtd-bcm47xxpart-backports-from-3.19.patch
@@ -0,0 +1,50 @@
+--- 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;
+