From 2fe5eba1d8281eded5b490b00d87394c000da0ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Mon, 6 Oct 2014 13:49:11 +0000 Subject: [PATCH] kernel: allow rootfs splitters to work without CONFIG_MTD_ROOTFS_SPLIT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We want to remove that old (built-in) splitter at some point. Signed-off-by: Rafał Miłecki git-svn-id: svn://svn.openwrt.org/openwrt/trunk@42804 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- ...arsers-for-rootfs-and-firmware-split.patch | 27 ++++++++++--------- .../405-mtd-add-more-helper-functions.patch | 2 +- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/target/linux/generic/patches-3.14/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch b/target/linux/generic/patches-3.14/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch index 92a3ee7633..00a2e0e6fa 100644 --- a/target/linux/generic/patches-3.14/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch +++ b/target/linux/generic/patches-3.14/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch @@ -38,18 +38,7 @@ static inline unsigned long mtd_pad_erasesize(struct mtd_info *mtd, int offset, int len) { -@@ -660,6 +691,10 @@ static void split_rootfs_data(struct mtd - unsigned int split_size; - int ret; - -+ ret = run_parsers_by_type(part, MTD_PARSER_TYPE_ROOTFS); -+ if (ret > 0) -+ return; -+ - ret = split_squashfs(master, part->offset, &split_offset); - if (ret) - return; -@@ -709,6 +744,12 @@ static void split_uimage(struct mtd_info +@@ -709,6 +740,12 @@ static void split_uimage(struct mtd_info static void split_firmware(struct mtd_info *master, struct mtd_part *part) { @@ -62,6 +51,20 @@ if (config_enabled(CONFIG_MTD_UIMAGE_SPLIT)) split_uimage(master, part); } +@@ -726,9 +763,12 @@ static void mtd_partition_split(struct m + return; + + if (!strcmp(part->mtd.name, "rootfs")) { ++ int ret; ++ + rootfs_found = 1; + +- if (config_enabled(CONFIG_MTD_ROOTFS_SPLIT)) ++ ret = run_parsers_by_type(part, MTD_PARSER_TYPE_ROOTFS); ++ if (ret <= 0 && config_enabled(CONFIG_MTD_ROOTFS_SPLIT)) + split_rootfs_data(master, part); + } + --- a/include/linux/mtd/partitions.h +++ b/include/linux/mtd/partitions.h @@ -70,6 +70,8 @@ struct mtd_part_parser_data { diff --git a/target/linux/generic/patches-3.14/405-mtd-add-more-helper-functions.patch b/target/linux/generic/patches-3.14/405-mtd-add-more-helper-functions.patch index c6ce8728bb..420095eb69 100644 --- a/target/linux/generic/patches-3.14/405-mtd-add-more-helper-functions.patch +++ b/target/linux/generic/patches-3.14/405-mtd-add-more-helper-functions.patch @@ -18,7 +18,7 @@ } if (slave->offset == MTDPART_OFS_RETAIN) { slave->offset = cur_offset; -@@ -985,6 +983,24 @@ int mtd_is_partition(const struct mtd_in +@@ -984,6 +982,24 @@ int mtd_is_partition(const struct mtd_in } EXPORT_SYMBOL_GPL(mtd_is_partition);