diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2013-09-21 17:55:44 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2013-09-21 17:55:44 +0000 |
commit | d89bea92b31b4e157a0fa438e75370f089f73427 (patch) | |
tree | f36cc78f4f16c0d477f124d102d614d4f8f120d6 /target/linux/generic/patches-3.10 | |
parent | 3b71cd94bc9517bc25267dccb393b07d4b54564e (diff) | |
download | mtk-20170518-d89bea92b31b4e157a0fa438e75370f089f73427.zip mtk-20170518-d89bea92b31b4e157a0fa438e75370f089f73427.tar.gz mtk-20170518-d89bea92b31b4e157a0fa438e75370f089f73427.tar.bz2 |
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.patch | 25 | ||||
-rw-r--r-- | target/linux/generic/patches-3.10/404-mtd-use-mtd_get_squashfs_len-in-split_squasfh.patch | 69 |
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 0000000..c24f34c --- /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 0000000..43960b3 --- /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 |