aboutsummaryrefslogtreecommitdiff
path: root/init/initramfs.c
diff options
context:
space:
mode:
authorRom Lemarchand <romlem@android.com>2015-07-06 16:50:33 -0700
committerMoyster <oysterized@gmail.com>2017-12-05 17:51:12 +0100
commitac19aa617991eecc45db9734991af33315f0bf16 (patch)
tree76e21804afbe87859d657488adc8f46952ea7791 /init/initramfs.c
parent701497f022711f9c63fd8568362774554b34e4ed (diff)
initramfs: Add skip_initramfs command line option
Add a skip_initramfs option to allow choosing whether to boot using the initramfs or not at runtime. Change-Id: If30428fa748c1d4d3d7b9d97c1f781de5e4558c3 Signed-off-by: Rom Lemarchand <romlem@google.com>
Diffstat (limited to 'init/initramfs.c')
-rw-r--r--init/initramfs.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/init/initramfs.c b/init/initramfs.c
index a67ef9dbd..43ae0cc9d 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -18,6 +18,7 @@
#include <linux/dirent.h>
#include <linux/syscalls.h>
#include <linux/utime.h>
+#include <linux/initramfs.h>
static __initdata char *message;
static void __init error(char *x)
@@ -579,9 +580,25 @@ static void __init clean_rootfs(void)
}
#endif
+static int __initdata do_skip_initramfs;
+
+static int __init skip_initramfs_param(char *str)
+{
+ if (*str)
+ return 0;
+ do_skip_initramfs = 1;
+ return 1;
+}
+__setup("skip_initramfs", skip_initramfs_param);
+
static int __init populate_rootfs(void)
{
- char *err = unpack_to_rootfs(__initramfs_start, __initramfs_size);
+ char *err;
+
+ if (do_skip_initramfs)
+ return default_rootfs();
+
+ err = unpack_to_rootfs(__initramfs_start, __initramfs_size);
if (err)
panic(err); /* Failed to decompress INTERNAL initramfs */
if (initrd_start) {