diff options
author | Imre Kaloz <kaloz@openwrt.org> | 2014-03-07 11:27:00 +0000 |
---|---|---|
committer | Imre Kaloz <kaloz@openwrt.org> | 2014-03-07 11:27:00 +0000 |
commit | 074af75668dd491042b07a26059927da38f13663 (patch) | |
tree | 58362fbaa56de52bda6c4aafc825d5bf5c40ec09 /target/linux/generic/patches-3.14/404-mtd-use-mtd_get_squashfs_len-in-split_squasfh.patch | |
parent | 96fa58bafd6b311a9a3686b704bf8074905c4bea (diff) | |
download | master-31e0f0ae-074af75668dd491042b07a26059927da38f13663.tar.gz master-31e0f0ae-074af75668dd491042b07a26059927da38f13663.tar.bz2 master-31e0f0ae-074af75668dd491042b07a26059927da38f13663.zip |
add preliminary 3.14 support
Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
SVN-Revision: 39789
Diffstat (limited to 'target/linux/generic/patches-3.14/404-mtd-use-mtd_get_squashfs_len-in-split_squasfh.patch')
-rw-r--r-- | target/linux/generic/patches-3.14/404-mtd-use-mtd_get_squashfs_len-in-split_squasfh.patch | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/target/linux/generic/patches-3.14/404-mtd-use-mtd_get_squashfs_len-in-split_squasfh.patch b/target/linux/generic/patches-3.14/404-mtd-use-mtd_get_squashfs_len-in-split_squasfh.patch new file mode 100644 index 0000000000..a54b97b07c --- /dev/null +++ b/target/linux/generic/patches-3.14/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 +@@ -33,6 +33,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 |