generic: 6.1: fix uImage.FIT partitions on mtdblock and ubiblock
authorDaniel Golle <daniel@makrotopia.org>
Thu, 6 Jul 2023 18:55:17 +0000 (20:55 +0200)
committerDaniel Golle <daniel@makrotopia.org>
Fri, 7 Jul 2023 12:01:39 +0000 (14:01 +0200)
When refreshing the hack patches for Linux 6.1 the part of the uImage.FIT
partition parser patch which takes care of allowing mtdblock and ubiblock
devices to have partitions has been dropped, supposedly by accident.
Re-add a that part to the patch, so devices using a uImage.FIT filesystem
sub-image as rootfs can work with Linux 6.1.

Fixes: 19a246bb65 ("generic: 6.1: manually refresh hack patches")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
target/linux/generic/hack-6.1/410-block-fit-partition-parser.patch

index 0384dad85e5954edad290657dfa2ceb3e98af7ee..1258f64722a526f52ba1778af17e3f2df0278965 100644 (file)
@@ -179,6 +179,32 @@ Subject: [PATCH] kernel: add block fit partition parser
        {0, NULL},
  };
  
+--- a/drivers/mtd/mtd_blkdevs.c
++++ b/drivers/mtd/mtd_blkdevs.c
+@@ -359,7 +359,9 @@ int add_mtd_blktrans_dev(struct mtd_blkt
+       } else {
+               snprintf(gd->disk_name, sizeof(gd->disk_name),
+                        "%s%d", tr->name, new->devnum);
+-              gd->flags |= GENHD_FL_NO_PART;
++
++              if (!IS_ENABLED(CONFIG_FIT_PARTITION) || mtd_type_is_nand(new->mtd))
++                      gd->flags |= GENHD_FL_NO_PART;
+       }
+       set_capacity(gd, ((u64)new->size * tr->blksize) >> 9);
+--- a/drivers/mtd/ubi/block.c
++++ b/drivers/mtd/ubi/block.c
+@@ -431,7 +431,9 @@ int ubiblock_create(struct ubi_volume_in
+               ret = -ENODEV;
+               goto out_cleanup_disk;
+       }
+-      gd->flags |= GENHD_FL_NO_PART;
++      if (!IS_ENABLED(CONFIG_FIT_PARTITION))
++              gd->flags |= GENHD_FL_NO_PART;
++
+       gd->private_data = dev;
+       sprintf(gd->disk_name, "ubiblock%d_%d", dev->ubi_num, dev->vol_id);
+       set_capacity(gd, disk_capacity);
 --- a/include/linux/msdos_partition.h
 +++ b/include/linux/msdos_partition.h
 @@ -31,6 +31,7 @@ enum msdos_sys_ind {