1 --- a/drivers/mtd/mtdpart.c
2 +++ b/drivers/mtd/mtdpart.c
9 /* Our partition linked list */
10 static LIST_HEAD(mtd_partitions);
11 @@ -670,43 +671,16 @@ mtd_pad_erasesize(struct mtd_info *mtd,
15 -#define ROOTFS_SPLIT_NAME "rootfs_data"
17 -struct squashfs_super_block {
24 static int split_squashfs(struct mtd_info *master, int offset, int *split_offset)
26 - struct squashfs_super_block sb;
27 + size_t squashfs_len;
30 - ret = mtd_read(master, offset, sizeof(sb), &len, (void *) &sb);
31 - if (ret || (len != sizeof(sb))) {
32 - printk(KERN_ALERT "split_squashfs: error occured while reading "
33 - "from \"%s\"\n", master->name);
37 - if (SQUASHFS_MAGIC != le32_to_cpu(sb.s_magic) ) {
38 - printk(KERN_ALERT "split_squashfs: no squashfs found in \"%s\"\n",
44 - if (le64_to_cpu((sb.bytes_used)) <= 0) {
45 - printk(KERN_ALERT "split_squashfs: squashfs is empty in \"%s\"\n",
50 + ret = mtd_get_squashfs_len(master, offset, &squashfs_len);
54 - len = (u32) le64_to_cpu(sb.bytes_used);
55 - len = mtd_pad_erasesize(master, offset, len);
56 + len = mtd_pad_erasesize(master, offset, squashfs_len);
57 *split_offset = offset + len;
60 --- a/drivers/mtd/Kconfig
61 +++ b/drivers/mtd/Kconfig
62 @@ -20,6 +20,7 @@ config MTD_ROOTFS_ROOT_DEV
64 config MTD_ROOTFS_SPLIT
65 bool "Automatically split 'rootfs' partition for squashfs"
69 config MTD_SPLIT_FIRMWARE