[PATCH] BLK_DEV_INITRD: do not require BLK_DEV_RAM=y
Zdenek Pavlas [Sat, 25 Mar 2006 11:07:49 +0000 (03:07 -0800)]
Initramfs initrd images do not need a ramdisk device, so remove this
restriction in Kconfig.  BLK_DEV_RAM=n saves about 13k on i386.  Also
without ramdisk device there's no need for "dry run", so initramfs unpacks
much faster.

People using cramfs, squashfs, or gzipped ext2/minix initrd images are
probably smart enough not to turn off ramdisk support by accident.

Cc: Al Viro <viro@ftp.linux.org.uk>
Cc: Christoph Hellwig <hch@lst.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

drivers/block/Kconfig
init/initramfs.c

index 8b13316..e57ac5a 100644 (file)
@@ -401,7 +401,6 @@ config BLK_DEV_RAM_SIZE
 
 config BLK_DEV_INITRD
        bool "Initial RAM disk (initrd) support"
-       depends on BLK_DEV_RAM=y
        help
          The initial RAM disk is a RAM disk that is loaded by the boot loader
          (loadlin or lilo) and that is mounted as root before the normal boot
index 637344b..77b934c 100644 (file)
@@ -506,6 +506,7 @@ void __init populate_rootfs(void)
                panic(err);
 #ifdef CONFIG_BLK_DEV_INITRD
        if (initrd_start) {
+#ifdef CONFIG_BLK_DEV_RAM
                int fd;
                printk(KERN_INFO "checking if image is initramfs...");
                err = unpack_to_rootfs((char *)initrd_start,
@@ -525,6 +526,15 @@ void __init populate_rootfs(void)
                        sys_close(fd);
                        free_initrd();
                }
+#else
+               printk(KERN_INFO "Unpacking initramfs...");
+               err = unpack_to_rootfs((char *)initrd_start,
+                       initrd_end - initrd_start, 0);
+               if (err)
+                       panic(err);
+               printk(" done\n");
+               free_initrd();
+#endif
        }
 #endif
 }