kernel: mtdsplit_squashfs: Align with the erase-block size
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 17 Jan 2016 10:41:30 +0000 (10:41 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 17 Jan 2016 10:41:30 +0000 (10:41 +0000)
On most image types the rootfs ends at an erase-block. However, at least
with brnImages this is not the case: while the partitions are aligned
with the erase-block size there is a 12 byte footer at the end of the
partition which must not be touched by any filesystem. This lead to a
rootfs_data partition which was not aligned properly (and thus ended up
being readonly):
0x000000480000-0x00000085a800 : "rootfs_data" (128 KiB EB)

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@48263 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_squashfs.c

index 3d80e07..5329037 100644 (file)
@@ -49,7 +49,7 @@ mtdsplit_parse_squashfs(struct mtd_info *master,
        part->name = ROOTFS_SPLIT_NAME;
        part->offset = mtd_roundup_to_eb(part_offset + squashfs_len,
                                         parent_mtd) - part_offset;
-       part->size = master->size - part->offset;
+       part->size = mtd_rounddown_to_eb(master->size - part->offset, master);
 
        *pparts = part;
        return 1;