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

From: Eric W. Biederman
Date: Thu Jan 05 2012 - 15:51:20 EST


Richard Weinberger <richard@xxxxxx> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/