aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/pending-4.14
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2018-11-22 12:55:14 +0100
committerRafał Miłecki <rafal@milecki.pl>2018-11-24 08:31:55 +0100
commit934edb764dfd9fffe88478ecd315bee6ca0a781a (patch)
treec48581cf5ed5db70d7a14064e2d73fd9251d488f /target/linux/generic/pending-4.14
parent6680fab9474a8a2d66d5ef86e2c392abe0d2c62d (diff)
downloadupstream-934edb764dfd9fffe88478ecd315bee6ca0a781a.tar.gz
upstream-934edb764dfd9fffe88478ecd315bee6ca0a781a.tar.bz2
upstream-934edb764dfd9fffe88478ecd315bee6ca0a781a.zip
kernel: don't auto-split "firmware" if it has "compatible" DT property
If "compatible" is being used that should trigger a proper parser directly. It's more reliable thanks to not trying parsers one by one. In such case partition shouldn't be split automatically to avoid parsing it twice. Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Diffstat (limited to 'target/linux/generic/pending-4.14')
-rw-r--r--target/linux/generic/pending-4.14/400-mtd-add-rootfs-split-support.patch9
-rw-r--r--target/linux/generic/pending-4.14/401-mtd-add-support-for-different-partition-parser-types.patch2
-rw-r--r--target/linux/generic/pending-4.14/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch6
-rw-r--r--target/linux/generic/pending-4.14/404-mtd-add-more-helper-functions.patch2
4 files changed, 10 insertions, 9 deletions
diff --git a/target/linux/generic/pending-4.14/400-mtd-add-rootfs-split-support.patch b/target/linux/generic/pending-4.14/400-mtd-add-rootfs-split-support.patch
index 68737803d8..b68e253819 100644
--- a/target/linux/generic/pending-4.14/400-mtd-add-rootfs-split-support.patch
+++ b/target/linux/generic/pending-4.14/400-mtd-add-rootfs-split-support.patch
@@ -68,7 +68,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
mtd_add_partition_attrs(new);
-@@ -736,6 +741,35 @@ int mtd_del_partition(struct mtd_info *m
+@@ -736,6 +741,36 @@ int mtd_del_partition(struct mtd_info *m
}
EXPORT_SYMBOL_GPL(mtd_del_partition);
@@ -94,8 +94,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
+ if (rootfs_found)
+ return;
+
-+ if (!strcmp(part->mtd.name, SPLIT_FIRMWARE_NAME) &&
-+ IS_ENABLED(CONFIG_MTD_SPLIT_FIRMWARE))
++ if (IS_ENABLED(CONFIG_MTD_SPLIT_FIRMWARE) &&
++ !strcmp(part->mtd.name, SPLIT_FIRMWARE_NAME) &&
++ !of_find_property(mtd_get_of_node(&part->mtd), "compatible", NULL))
+ split_firmware(master, part);
+
+ arch_split_mtd_part(master, part->mtd.name, part->offset,
@@ -104,7 +105,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
/*
* This function, given a master MTD object and a partition table, creates
* and registers slave MTD objects which are bound to the master according to
-@@ -767,6 +801,7 @@ int add_mtd_partitions(struct mtd_info *
+@@ -767,6 +802,7 @@ int add_mtd_partitions(struct mtd_info *
mutex_unlock(&mtd_partitions_mutex);
add_mtd_device(&slave->mtd);
diff --git a/target/linux/generic/pending-4.14/401-mtd-add-support-for-different-partition-parser-types.patch b/target/linux/generic/pending-4.14/401-mtd-add-support-for-different-partition-parser-types.patch
index a48ae87ea2..0393fb2309 100644
--- a/target/linux/generic/pending-4.14/401-mtd-add-support-for-different-partition-parser-types.patch
+++ b/target/linux/generic/pending-4.14/401-mtd-add-support-for-different-partition-parser-types.patch
@@ -57,7 +57,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
#ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
#define SPLIT_FIRMWARE_NAME CONFIG_MTD_SPLIT_FIRMWARE_NAME
#else
-@@ -1118,6 +1152,61 @@ void mtd_part_parser_cleanup(struct mtd_
+@@ -1119,6 +1153,61 @@ void mtd_part_parser_cleanup(struct mtd_
}
}
diff --git a/target/linux/generic/pending-4.14/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch b/target/linux/generic/pending-4.14/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch
index 3c105b2a47..240d0b2a25 100644
--- a/target/linux/generic/pending-4.14/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch
+++ b/target/linux/generic/pending-4.14/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch
@@ -28,9 +28,9 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+ rootfs_found = 1;
+ }
+
- if (!strcmp(part->mtd.name, SPLIT_FIRMWARE_NAME) &&
- IS_ENABLED(CONFIG_MTD_SPLIT_FIRMWARE))
- split_firmware(master, part);
+ if (IS_ENABLED(CONFIG_MTD_SPLIT_FIRMWARE) &&
+ !strcmp(part->mtd.name, SPLIT_FIRMWARE_NAME) &&
+ !of_find_property(mtd_get_of_node(&part->mtd), "compatible", NULL))
--- a/include/linux/mtd/partitions.h
+++ b/include/linux/mtd/partitions.h
@@ -75,6 +75,8 @@ struct mtd_part_parser_data {
diff --git a/target/linux/generic/pending-4.14/404-mtd-add-more-helper-functions.patch b/target/linux/generic/pending-4.14/404-mtd-add-more-helper-functions.patch
index b37563c902..d1035b6738 100644
--- a/target/linux/generic/pending-4.14/404-mtd-add-more-helper-functions.patch
+++ b/target/linux/generic/pending-4.14/404-mtd-add-more-helper-functions.patch
@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
-@@ -1231,6 +1231,24 @@ int mtd_is_partition(const struct mtd_in
+@@ -1232,6 +1232,24 @@ int mtd_is_partition(const struct mtd_in
}
EXPORT_SYMBOL_GPL(mtd_is_partition);