[PATCH] BLK_DEV_INITRD: do not require BLK_DEV_RAM=y
Changes
2 files changed · +10 −1
| File | Status | Add | Del | Content |
|---|---|---|---|---|
| drivers/block/Kconfig | modified | +0 | −1 | View file |
| init/initramfs.c | modified | +10 | −0 | View file |
drivers/block/Kconfig
View filediff --git a/drivers/block/Kconfig b/drivers/block/Kconfig
index 8b13316..e57ac5a 100644
--- a/drivers/block/Kconfig
+++ b/drivers/block/Kconfig
@@ -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
init/initramfs.c
View filediff --git a/init/initramfs.c b/init/initramfs.c
index 637344b..77b934c 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -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
}