kernel: bump 5.10 to 5.10.178
[openwrt/staging/dedeckeh.git] / target / linux / generic / hack-5.10 / 410-block-fit-partition-parser.patch
index bc48296d9c9fb4a5ecd203caa87fcac4d7dac757..52d8e24d0f37a1480c6ee8af47c7e4ba071f432b 100644 (file)
@@ -1,3 +1,30 @@
+From: Daniel Golle <daniel@makrotopia.org>
+Subject: [PATCH] kernel: fix FIT partition parser compatibility issues
+
+The uImage.FIT partition parser used to squeeze in FIT partitions in
+the range where partition editor tools (fdisk and such) expect the
+regular partition. This is confusing people and tools when adding
+additional partitions on top of the partition used for OpenWrt's
+uImage.FIT.
+Instead of squeezing in the additional partitions, rather start with
+all uImage.FIT partitions at offset 64.
+
+Submitted-by: Daniel Golle <daniel@makrotopia.org>
+---
+ block/blk.h                                            |  2 ++
+ block/partitions/Kconfig                               |  7 +++
+ block/partitions/Makefile                              |  1 +
+ block/partitions/check.h                               |  3 ++
+ block/partitions/core.c                                | 15 +++++++
+ drivers/mtd/ubi/block.c                                |  7 +++
+ block/partitions/efi.c                                 |  8 +++++++
+ block/partitions/efi.h                                 |  3 ++
+ drivers/mtd/mtdblock.c                                 |  4 +++
+ drivers/mtd/mtd_blkdevs.c                              | 14 +------
+ block/partitions/msdos.c                               | 10 ++++++
+ include/linux/msdos_partition.h                        |  1 +
+ 12 files changed, 52 insertions(+), 13 deletions(-)
+
 --- a/block/blk.h
 +++ b/block/blk.h
 @@ -361,6 +361,8 @@ char *disk_name(struct gendisk *hd, int
  #ifdef CONFIG_SGI_PARTITION
        sgi_partition,
  #endif
-@@ -694,6 +701,14 @@ static bool blk_add_partition(struct gen
+@@ -701,6 +708,14 @@ static bool blk_add_partition(struct gen
            (state->parts[p].flags & ADDPART_FLAG_RAID))
                md_autodetect_dev(part_to_dev(part)->devt);
  
        __le64 signature;
 --- a/drivers/mtd/mtdblock.c
 +++ b/drivers/mtd/mtdblock.c
-@@ -334,7 +334,11 @@ static void mtdblock_remove_dev(struct m
+@@ -338,7 +338,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      = 1,
++      .part_bits      = 2,
 +#else
        .part_bits      = 0,
 +#endif