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>
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user