summaryrefslogtreecommitdiffstats
path: root/target/linux/generic-2.6/patches-2.6.30/066-rootfs_split_squashfs4_fix.patch
blob: a968a57facb36d3e0c15d669cd8d98048c0c3c56 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
--- a/drivers/mtd/mtdpart.c
+++ b/drivers/mtd/mtdpart.c
@@ -538,21 +538,21 @@ static int split_squashfs(struct mtd_inf
 		return -EINVAL;
 	}
 
-	if (*((u32 *) buf) != SQUASHFS_MAGIC) {
+	if (SQUASHFS_MAGIC != le32_to_cpu(sb->s_magic) ) {
 		printk(KERN_ALERT "split_squashfs: no squashfs found in \"%s\"\n",
 			master->name);
 		*split_offset = 0;
 		return 0;
 	}
 
-	if (sb->bytes_used <= 0) {
+	if (le64_to_cpu((sb->bytes_used)) <= 0) {
 		printk(KERN_ALERT "split_squashfs: squashfs is empty in \"%s\"\n",
 			master->name);
 		*split_offset = 0;
 		return 0;
 	}
 
-	len = (u32) sb->bytes_used;
+	len = (u32) le64_to_cpu(sb->bytes_used);
 	len += (offset & 0x000fffff);
 	len +=  (master->erasesize - 1);
 	len &= ~(master->erasesize - 1);