diff --git a/target/linux/ar71xx/patches-3.2/412-mtd-m25p80-zero-partition-parser-data.patch b/target/linux/ar71xx/patches-3.2/412-mtd-m25p80-zero-partition-parser-data.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a32a19629cfc25211761ea6949f857bfaea172f7
--- /dev/null
+++ b/target/linux/ar71xx/patches-3.2/412-mtd-m25p80-zero-partition-parser-data.patch
@@ -0,0 +1,10 @@
+--- a/drivers/mtd/devices/m25p80.c
++++ b/drivers/mtd/devices/m25p80.c
+@@ -977,6 +977,7 @@ static int __devinit m25p_probe(struct s
+ 	if (info->flags & M25P_NO_ERASE)
+ 		flash->mtd.flags |= MTD_NO_ERASE;
+ 
++	memset(&ppdata, '\0', sizeof(ppdata));
+ 	ppdata.of_node = spi->dev.of_node;
+ 	flash->mtd.dev.parent = &spi->dev;
+ 	flash->page_size = info->page_size;
diff --git a/target/linux/ar71xx/patches-3.3/412-mtd-m25p80-zero-partition-parser-data.patch b/target/linux/ar71xx/patches-3.3/412-mtd-m25p80-zero-partition-parser-data.patch
new file mode 100644
index 0000000000000000000000000000000000000000..a32a19629cfc25211761ea6949f857bfaea172f7
--- /dev/null
+++ b/target/linux/ar71xx/patches-3.3/412-mtd-m25p80-zero-partition-parser-data.patch
@@ -0,0 +1,10 @@
+--- a/drivers/mtd/devices/m25p80.c
++++ b/drivers/mtd/devices/m25p80.c
+@@ -977,6 +977,7 @@ static int __devinit m25p_probe(struct s
+ 	if (info->flags & M25P_NO_ERASE)
+ 		flash->mtd.flags |= MTD_NO_ERASE;
+ 
++	memset(&ppdata, '\0', sizeof(ppdata));
+ 	ppdata.of_node = spi->dev.of_node;
+ 	flash->mtd.dev.parent = &spi->dev;
+ 	flash->page_size = info->page_size;