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>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user