aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch')
-rw-r--r--target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch67
1 files changed, 15 insertions, 52 deletions
diff --git a/target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch b/target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch
index b8cada98e6..65438807de 100644
--- a/target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch
+++ b/target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch
@@ -80,10 +80,10 @@
+#ifdef CONFIG_FIT_PARTITION
+ if ((state->parts[p].flags & ADDPART_FLAG_ROOTDEV) && ROOT_DEV == 0)
-+ ROOT_DEV = part_to_dev(part)->devt;
++ ROOT_DEV = part->bd_dev;
+
+ if (state->parts[p].flags & ADDPART_FLAG_READONLY)
-+ part->policy = true;
++ set_disk_ro(disk, true);
+#endif
+
return true;
@@ -91,20 +91,8 @@
--- a/drivers/mtd/ubi/block.c
+++ b/drivers/mtd/ubi/block.c
-@@ -396,7 +396,11 @@ int ubiblock_create(struct ubi_volume_in
-
- gd->fops = &ubiblock_ops;
- gd->major = ubiblock_major;
-+#ifdef CONFIG_FIT_PARTITION
-+ gd->minors = 0;
-+#else
- gd->minors = 1;
-+#endif
- gd->first_minor = idr_alloc(&ubiblock_minor_idr, dev, 0, 0, GFP_KERNEL);
- if (gd->first_minor < 0) {
- dev_err(disk_to_dev(gd),
@@ -413,6 +417,9 @@ int ubiblock_create(struct ubi_volume_in
- goto out_put_disk;
+ goto out_cleanup_disk;
}
gd->private_data = dev;
+#ifdef CONFIG_FIT_PARTITION
@@ -113,6 +101,18 @@
sprintf(gd->disk_name, "ubiblock%d_%d", dev->ubi_num, dev->vol_id);
set_capacity(gd, disk_capacity);
dev->gd = gd;
+--- a/drivers/mtd/mtd_blkdevs.c
++++ b/drivers/mtd/mtd_blkdevs.c
+@@ -345,6 +345,9 @@ int add_mtd_blktrans_dev(struct mtd_blktrans_dev *new)
+ gd->first_minor = (new->devnum) << tr->part_bits;
+ gd->minors = 1 << tr->part_bits;
+ gd->fops = &mtd_block_ops;
++#ifdef CONFIG_FIT_PARTITION
++ gd->flags |= GENHD_FL_EXT_DEVT;
++#endif
+
+ if (tr->part_bits)
+ if (new->devnum < 26)
--- a/block/partitions/efi.c
+++ b/block/partitions/efi.c
@@ -706,6 +706,9 @@ int efi_partition(struct parsed_partitio
@@ -149,43 +149,6 @@
typedef struct _gpt_header {
__le64 signature;
---- a/drivers/mtd/mtdblock.c
-+++ b/drivers/mtd/mtdblock.c
-@@ -334,7 +334,11 @@ static void mtdblock_remove_dev(struct m
- static struct mtd_blktrans_ops mtdblock_tr = {
- .name = "mtdblock",
- .major = MTD_BLOCK_MAJOR,
-+#ifdef CONFIG_FIT_PARTITION
-+ .part_bits = 2,
-+#else
- .part_bits = 0,
-+#endif
- .blksize = 512,
- .open = mtdblock_open,
- .flush = mtdblock_flush,
---- a/drivers/mtd/mtd_blkdevs.c
-+++ b/drivers/mtd/mtd_blkdevs.c
-@@ -407,18 +407,8 @@ int add_mtd_blktrans_dev(struct mtd_blkt
- gd->first_minor = (new->devnum) << tr->part_bits;
- gd->fops = &mtd_block_ops;
-
-- if (tr->part_bits)
-- if (new->devnum < 26)
-- snprintf(gd->disk_name, sizeof(gd->disk_name),
-- "%s%c", tr->name, 'a' + new->devnum);
-- else
-- snprintf(gd->disk_name, sizeof(gd->disk_name),
-- "%s%c%c", tr->name,
-- 'a' - 1 + new->devnum / 26,
-- 'a' + new->devnum % 26);
-- else
-- snprintf(gd->disk_name, sizeof(gd->disk_name),
-- "%s%d", tr->name, new->devnum);
-+ snprintf(gd->disk_name, sizeof(gd->disk_name),
-+ "%s%d", tr->name, new->devnum);
-
- set_capacity(gd, ((u64)new->size * tr->blksize) >> 9);
-
--- a/block/partitions/msdos.c
+++ b/block/partitions/msdos.c
@@ -563,6 +563,15 @@ static void parse_minix(struct parsed_pa