diff options
author | Daniel Golle <daniel@makrotopia.org> | 2022-01-07 17:39:42 +0000 |
---|---|---|
committer | Daniel Golle <daniel@makrotopia.org> | 2022-03-27 04:51:31 +0100 |
commit | 30a5e073906ab671c31063cb0deed00686369277 (patch) | |
tree | ee92c7f7711c8bc98451f93bf333a7bf6ed7bc73 /target/linux/generic/hack-5.15/410-block-fit-partition-parser.patch | |
parent | 71efd34700e59f553367abb1b5de28c01f4c2d12 (diff) | |
download | upstream-30a5e073906ab671c31063cb0deed00686369277.tar.gz upstream-30a5e073906ab671c31063cb0deed00686369277.tar.bz2 upstream-30a5e073906ab671c31063cb0deed00686369277.zip |
generic: 5.15: get uImage.FIT partition parser ready
Prepare uImage.FIT partition parser for Linux 5.15
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
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.patch | 67 |
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 |