diff options
Diffstat (limited to 'packages/linux/linux-openmoko-2.6.28/0002-squashfs-initrd.patch')
-rw-r--r-- | packages/linux/linux-openmoko-2.6.28/0002-squashfs-initrd.patch | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/packages/linux/linux-openmoko-2.6.28/0002-squashfs-initrd.patch b/packages/linux/linux-openmoko-2.6.28/0002-squashfs-initrd.patch new file mode 100644 index 0000000000..cd2c678058 --- /dev/null +++ b/packages/linux/linux-openmoko-2.6.28/0002-squashfs-initrd.patch @@ -0,0 +1,55 @@ +diff -urN linux-2.6.23/init/do_mounts_rd.c linux-2.6.23.sqlzma-ng/init/do_mounts_rd.c +--- linux-2.6.23/init/do_mounts_rd.c 2007-10-09 16:31:38.000000000 -0400 ++++ linux-2.6.23.sqlzma-ng/init/do_mounts_rd.c 2007-11-13 18:58:41.000000000 -0500 +@@ -5,6 +5,7 @@ + #include <linux/ext2_fs.h> + #include <linux/romfs_fs.h> + #include <linux/cramfs_fs.h> ++#include <linux/squashfs_fs.h> + #include <linux/initrd.h> + #include <linux/string.h> + +@@ -39,6 +40,7 @@ + * numbers could not be found. + * + * We currently check for the following magic numbers: ++ * squashfs + * minix + * ext2 + * romfs +@@ -53,6 +55,7 @@ + struct ext2_super_block *ext2sb; + struct romfs_super_block *romfsb; + struct cramfs_super *cramfsb; ++ struct squashfs_super_block *squashfsb; + int nblocks = -1; + unsigned char *buf; + +@@ -64,6 +67,7 @@ + ext2sb = (struct ext2_super_block *) buf; + romfsb = (struct romfs_super_block *) buf; + cramfsb = (struct cramfs_super *) buf; ++ squashfsb = (struct squashfs_super_block *) buf; + memset(buf, 0xe5, size); + + /* +@@ -101,6 +105,18 @@ + goto done; + } + ++ /* squashfs is at block zero too */ ++ if (squashfsb->s_magic == SQUASHFS_MAGIC) { ++ printk(KERN_NOTICE ++ "RAMDISK: squashfs filesystem found at block %d\n", ++ start_block); ++ if (squashfsb->s_major < 3) ++ nblocks = (squashfsb->bytes_used_2+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS; ++ else ++ nblocks = (squashfsb->bytes_used+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS; ++ goto done; ++ } ++ + /* + * Read block 1 to test for minix and ext2 superblock + */ + |