kernel: bump 4.14 to 4.14.158
[openwrt/openwrt.git] / target / linux / generic / pending-4.14 / 400-mtd-add-rootfs-split-support.patch
index e722d8ca92d40ba835e5e4d5485806f19fea54a6..e4b231fc26550c6e5839bf3c86a2f2614ccb03e9 100644 (file)
@@ -60,15 +60,15 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  /*
   * Given a pointer to the MTD object in the mtd_part structure, we can retrieve
   * the pointer to that structure.
-@@ -687,6 +691,7 @@ int mtd_add_partition(struct mtd_info *p
-       mutex_unlock(&mtd_partitions_mutex);
+@@ -661,6 +665,7 @@ int mtd_add_partition(struct mtd_info *p
+       if (ret)
+               goto err_remove_part;
  
-       add_mtd_device(&new->mtd);
 +      mtd_partition_split(parent, new);
        mtd_add_partition_attrs(new);
  
-@@ -765,6 +770,35 @@ int mtd_del_partition(struct mtd_info *m
+       return 0;
+@@ -747,6 +752,35 @@ int mtd_del_partition(struct mtd_info *m
  }
  EXPORT_SYMBOL_GPL(mtd_del_partition);
  
@@ -104,14 +104,14 @@ 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
-@@ -796,6 +830,7 @@ int add_mtd_partitions(struct mtd_info *
-               mutex_unlock(&mtd_partitions_mutex);
+@@ -787,6 +821,7 @@ int add_mtd_partitions(struct mtd_info *
+                       goto err_del_partitions;
+               }
  
-               add_mtd_device(&slave->mtd);
 +              mtd_partition_split(master, slave);
                mtd_add_partition_attrs(slave);
-               if (parts[i].types)
-                       mtd_parse_part(slave, parts[i].types);
+               /* Look for subpartitions */
+               parse_mtd_partitions(&slave->mtd, parts[i].types, NULL);
 --- a/include/linux/mtd/partitions.h
 +++ b/include/linux/mtd/partitions.h
 @@ -110,5 +110,7 @@ int mtd_add_partition(struct mtd_info *m