kernel: mtdsplit: calculate kernel partition precisely for Seama
authorRafał Miłecki <zajec5@gmail.com>
Mon, 20 Jun 2016 05:58:29 +0000 (07:58 +0200)
committerRafał Miłecki <zajec5@gmail.com>
Mon, 20 Jun 2016 05:58:29 +0000 (07:58 +0200)
So far "kernel" partition didn't contain just a kernel. It also included
Seama header and meta data. This was making kernel update complex and it
wasn't trivial to read kernel size.
Fix it by making "kernel" parition contain just a kernel image.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_seama.c

index ee0444a43e0c2a0c4c62b559a64b01ed5cd6a1bc..9fe131101882182e29779678958bd5f9d896a9ef 100644 (file)
@@ -79,8 +79,8 @@ static int mtdsplit_parse_seama(struct mtd_info *master,
                return -ENOMEM;
 
        parts[0].name = KERNEL_PART_NAME;
-       parts[0].offset = 0;
-       parts[0].size = rootfs_offset;
+       parts[0].offset = sizeof hdr + be16_to_cpu(hdr.metasize);
+       parts[0].size = rootfs_offset - parts[0].offset;
 
        if (type == MTDSPLIT_PART_TYPE_UBI)
                parts[1].name = UBI_PART_NAME;