summaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-3.10
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2013-09-21 17:55:44 +0000
committerGabor Juhos <juhosg@openwrt.org>2013-09-21 17:55:44 +0000
commitd89bea92b31b4e157a0fa438e75370f089f73427 (patch)
treef36cc78f4f16c0d477f124d102d614d4f8f120d6 /target/linux/generic/patches-3.10
parent3b71cd94bc9517bc25267dccb393b07d4b54564e (diff)
downloadmaster-31e0f0ae-d89bea92b31b4e157a0fa438e75370f089f73427.tar.gz
master-31e0f0ae-d89bea92b31b4e157a0fa438e75370f089f73427.tar.bz2
master-31e0f0ae-d89bea92b31b4e157a0fa438e75370f089f73427.zip
kernel/3.10: move squashfs check from rootfs split code into a separate file
Signed-off-by: Gabor Juhos <juhosg@openwrt.org> SVN-Revision: 38109
Diffstat (limited to 'target/linux/generic/patches-3.10')
-rw-r--r--target/linux/generic/patches-3.10/403-mtd-hook-mtdsplit-to-Kbuild.patch25
-rw-r--r--target/linux/generic/patches-3.10/404-mtd-use-mtd_get_squashfs_len-in-split_squasfh.patch69
2 files changed, 94 insertions, 0 deletions
diff --git a/target/linux/generic/patches-3.10/403-mtd-hook-mtdsplit-to-Kbuild.patch b/target/linux/generic/patches-3.10/403-mtd-hook-mtdsplit-to-Kbuild.patch
new file mode 100644
index 0000000000..c24f34c5cc
--- /dev/null
+++ b/target/linux/generic/patches-3.10/403-mtd-hook-mtdsplit-to-Kbuild.patch
@@ -0,0 +1,25 @@
+--- a/drivers/mtd/Kconfig
++++ b/drivers/mtd/Kconfig
+@@ -36,6 +36,11 @@ config MTD_UIMAGE_SPLIT
+ depends on MTD_SPLIT_FIRMWARE
+ default y
+
++config MTD_SPLIT
++ def_bool n
++ help
++ Generic MTD split support.
++
+ endmenu
+
+ config MTD_TESTS
+--- a/drivers/mtd/Makefile
++++ b/drivers/mtd/Makefile
+@@ -6,6 +6,8 @@
+ obj-$(CONFIG_MTD) += mtd.o
+ mtd-y := mtdcore.o mtdsuper.o mtdconcat.o mtdpart.o mtdchar.o
+
++mtd-$(CONFIG_MTD_SPLIT) += mtdsplit.o
++
+ obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o
+ obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
+ obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
diff --git a/target/linux/generic/patches-3.10/404-mtd-use-mtd_get_squashfs_len-in-split_squasfh.patch b/target/linux/generic/patches-3.10/404-mtd-use-mtd_get_squashfs_len-in-split_squasfh.patch
new file mode 100644
index 0000000000..43960b3065
--- /dev/null
+++ b/target/linux/generic/patches-3.10/404-mtd-use-mtd_get_squashfs_len-in-split_squasfh.patch
@@ -0,0 +1,69 @@
+--- a/drivers/mtd/mtdpart.c
++++ b/drivers/mtd/mtdpart.c
+@@ -34,6 +34,7 @@
+ #include <linux/err.h>
+
+ #include "mtdcore.h"
++#include "mtdsplit.h"
+
+ /* Our partition linked list */
+ static LIST_HEAD(mtd_partitions);
+@@ -669,43 +670,16 @@ mtd_pad_erasesize(struct mtd_info *mtd,
+ return len;
+ }
+
+-#define ROOTFS_SPLIT_NAME "rootfs_data"
+-
+-struct squashfs_super_block {
+- __le32 s_magic;
+- __le32 pad0[9];
+- __le64 bytes_used;
+-};
+-
+-
+ static int split_squashfs(struct mtd_info *master, int offset, int *split_offset)
+ {
+- struct squashfs_super_block sb;
++ size_t squashfs_len;
+ int len, ret;
+
+- ret = mtd_read(master, offset, sizeof(sb), &len, (void *) &sb);
+- if (ret || (len != sizeof(sb))) {
+- printk(KERN_ALERT "split_squashfs: error occured while reading "
+- "from \"%s\"\n", master->name);
+- return -EINVAL;
+- }
+-
+- if (SQUASHFS_MAGIC != le32_to_cpu(sb.s_magic) ) {
+- printk(KERN_ALERT "split_squashfs: no squashfs found in \"%s\"\n",
+- master->name);
+- *split_offset = 0;
+- return 0;
+- }
+-
+- if (le64_to_cpu((sb.bytes_used)) <= 0) {
+- printk(KERN_ALERT "split_squashfs: squashfs is empty in \"%s\"\n",
+- master->name);
+- *split_offset = 0;
+- return 0;
+- }
++ ret = mtd_get_squashfs_len(master, offset, &squashfs_len);
++ if (ret)
++ return ret;
+
+- len = (u32) le64_to_cpu(sb.bytes_used);
+- len = mtd_pad_erasesize(master, offset, len);
++ len = mtd_pad_erasesize(master, offset, squashfs_len);
+ *split_offset = offset + len;
+
+ return 0;
+--- a/drivers/mtd/Kconfig
++++ b/drivers/mtd/Kconfig
+@@ -20,6 +20,7 @@ config MTD_ROOTFS_ROOT_DEV
+
+ config MTD_ROOTFS_SPLIT
+ bool "Automatically split 'rootfs' partition for squashfs"
++ select MTD_SPLIT
+ default y
+
+ config MTD_SPLIT_FIRMWARE