Re: [PATCH] init: Warn on non-existent rdinit

Eric W. Biederman
2012-01-05T20:51:22Z

Richard Weinberger <richard@nod.at> writes:

> Such a warning would have saved me some time...
> Hopefully this printk() saves someone else's time. :-)

The warning is wrong if you are not using an initramfs or an initial
ramdisk.

I expect what you want is something like:

diff --git a/init/main.c b/init/main.c
index 217ed23..8d53d28 100644
--- a/init/main.c
+++ b/init/main.c
@@ -830,10 +830,11 @@ static int __init kernel_init(void * unused)
* the work
*/

- if (!ramdisk_execute_command)
+ if (!ramdisk_execute_command &&
+ (sys_access((const char __user *)"/init", 0) == 0))
ramdisk_execute_command = "/init";

- if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
+ if (!ramdisk_execute_command) {
ramdisk_execute_command = NULL;
prepare_namespace();
}

That way we don't clear ramdisk_execute_command if it was set and
we complain if we attempt exec the ramdisk_execute_command.

Eric