kernel: update 3.14 to 3.14.18
[openwrt.git] / target / linux / ramips / patches-3.14 / 0101-mtd-add-rtn56u-support.patch
1 --- a/drivers/mtd/mtdpart.c
2 +++ b/drivers/mtd/mtdpart.c
3 @@ -795,8 +795,11 @@ static void split_uimage(struct mtd_info
4  {
5         struct {
6                 __be32 magic;
7 -               __be32 pad[2];
8 +               __be32 pad0[2];
9                 __be32 size;
10 +               __be32 pad1[4];
11 +               __be32 name[7];
12 +               __be32 kern_size;
13         } hdr;
14         size_t len;
15  
16 @@ -806,7 +809,11 @@ static void split_uimage(struct mtd_info
17         if (len != sizeof(hdr) || hdr.magic != cpu_to_be32(UBOOT_MAGIC))
18                 return;
19  
20 -       len = be32_to_cpu(hdr.size) + 0x40;
21 +       if (hdr.kern_size != 0 && hdr.name[0] == 0)
22 +               len = be32_to_cpu(hdr.kern_size);
23 +       else
24 +               len = be32_to_cpu(hdr.size) + 0x40;
25 +
26         __mtd_add_partition(master, "rootfs", part->offset + len,
27                             part->mtd.size - len, false);
28  }