123456789101112131415161718192021222324252627 |
- --- a/drivers/mtd/mtdpart.c
- +++ b/drivers/mtd/mtdpart.c
- @@ -806,8 +806,11 @@ static void split_uimage(struct mtd_info
- {
- struct {
- __be32 magic;
- - __be32 pad[2];
- + __be32 pad0[2];
- __be32 size;
- + __be32 pad1[4];
- + __be32 name[7];
- + __be32 kern_size;
- } hdr;
- size_t len;
-
- @@ -817,7 +820,10 @@ static void split_uimage(struct mtd_info
- if (len != sizeof(hdr) || hdr.magic != cpu_to_be32(UBOOT_MAGIC))
- return;
-
- - len = be32_to_cpu(hdr.size) + 0x40;
- + if (hdr.kern_size != 0 && hdr.name[0] == 0)
- + len = be32_to_cpu(hdr.kern_size);
- + else
- + len = be32_to_cpu(hdr.size) + 0x40;
-
- if (config_enabled(CONFIG_MTD_SPLIT_UIMAGE_FW))
- pr_err("Dedicated partitioner didn't split firmware partition, please fill a bug report!\n");
|