aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafał Miłecki <rafal@milecki.pl>2022-11-08 12:22:51 +0100
committerRafał Miłecki <rafal@milecki.pl>2022-11-21 17:21:13 +0100
commit353e468f4730b6f24d7da6b62091dc07f29f586f (patch)
tree4938a43a7a5ab8edfd70c8f45b79f061fc47919e
parentb66037f53bf3d943e23cad01986ba079cecb41cd (diff)
downloadupstream-353e468f4730b6f24d7da6b62091dc07f29f586f.tar.gz
upstream-353e468f4730b6f24d7da6b62091dc07f29f586f.tar.bz2
upstream-353e468f4730b6f24d7da6b62091dc07f29f586f.zip
kernel: support "linux,rootfs" DT property for splitting rootfs
OpenWrt's support for splitting rootfs (to create an extra "rootfs_data" partition) is limited to partitions called "rootfs". Upstream kernel allows any name partition to be rootfs if it has "linux,rootfs" property set. Add split support to such partitions in OpenWrt code. Signed-off-by: Rafał Miłecki <rafal@milecki.pl> (cherry picked from commit e4770db163a9585c43bb70dc5d6d1e45ef848e4a)
-rw-r--r--target/linux/generic/pending-5.10/400-mtd-mtdsplit-support.patch11
1 files changed, 6 insertions, 5 deletions
diff --git a/target/linux/generic/pending-5.10/400-mtd-mtdsplit-support.patch b/target/linux/generic/pending-5.10/400-mtd-mtdsplit-support.patch
index ce4743879d..35b6944805 100644
--- a/target/linux/generic/pending-5.10/400-mtd-mtdsplit-support.patch
+++ b/target/linux/generic/pending-5.10/400-mtd-mtdsplit-support.patch
@@ -42,7 +42,7 @@
/*
* MTD methods which simply translate the effective address and pass through
-@@ -237,6 +239,146 @@ static int mtd_add_partition_attrs(struc
+@@ -237,6 +239,147 @@ static int mtd_add_partition_attrs(struc
return ret;
}
@@ -174,7 +174,8 @@
+ if (rootfs_found)
+ return;
+
-+ if (!strcmp(part->name, "rootfs")) {
++ if (of_find_property(mtd_get_of_node(part), "linux,rootfs", NULL) ||
++ !strcmp(part->name, "rootfs")) {
+ run_parsers_by_type(part, MTD_PARSER_TYPE_ROOTFS);
+
+ rootfs_found = 1;
@@ -189,7 +190,7 @@
int mtd_add_partition(struct mtd_info *parent, const char *name,
long long offset, long long length)
{
-@@ -275,6 +417,7 @@ int mtd_add_partition(struct mtd_info *p
+@@ -275,6 +418,7 @@ int mtd_add_partition(struct mtd_info *p
if (ret)
goto err_remove_part;
@@ -197,7 +198,7 @@
mtd_add_partition_attrs(child);
return 0;
-@@ -423,6 +566,7 @@ int add_mtd_partitions(struct mtd_info *
+@@ -423,6 +567,7 @@ int add_mtd_partitions(struct mtd_info *
goto err_del_partitions;
}
@@ -205,7 +206,7 @@
mtd_add_partition_attrs(child);
/* Look for subpartitions */
-@@ -439,31 +583,6 @@ err_del_partitions:
+@@ -439,31 +584,6 @@ err_del_partitions:
return ret;
}