From: Daniel Golle Date: Thu, 6 Jul 2023 18:55:17 +0000 (+0200) Subject: generic: 6.1: fix uImage.FIT partitions on mtdblock and ubiblock X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=e386b279fdab758f75160636bca5385dae202aee;p=openwrt%2Fstaging%2Frobimarko.git generic: 6.1: fix uImage.FIT partitions on mtdblock and ubiblock 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 --- diff --git a/target/linux/generic/hack-6.1/410-block-fit-partition-parser.patch b/target/linux/generic/hack-6.1/410-block-fit-partition-parser.patch index 0384dad85e..1258f64722 100644 --- a/target/linux/generic/hack-6.1/410-block-fit-partition-parser.patch +++ b/target/linux/generic/hack-6.1/410-block-fit-partition-parser.patch @@ -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 {