[PATCH] KERNEL: Conditionally include ramdisk-related code.

From: Robert P. J. Day
Date: Sat Jul 11 2009 - 06:41:58 EST



Given that BLK_DEV_INITRD defines whether the kernel has any ramdisk
functionality whatsoever, conditionally include ramdisk-related code
in init/main.c.

Signed-off-by: Robert P. J. Day <rpjday@xxxxxxxxxxxxxx>

---

Not a big deal, but there seems to be some precedent in other files
in conditionally whacking out any chunks related to ramdisks if
BLK_DEV_INITRD has not been selected.

Compile tested on x86 with "defconfig", followed by deselecting
BLK_DEV_INITRD.

diff --git a/init/main.c b/init/main.c
index 2c5ade7..d88c7b4 100644
--- a/init/main.c
+++ b/init/main.c
@@ -119,7 +119,9 @@ char *saved_command_line;
static char *static_command_line;

static char *execute_command;
+#ifdef CONFIG_BLK_DEV_INITRD
static char *ramdisk_execute_command;
+#endif

#ifdef CONFIG_SMP
/* Setup configured maximum number of CPUs to activate */
@@ -330,6 +332,8 @@ static int __init init_setup(char *str)
}
__setup("init=", init_setup);

+#ifdef CONFIG_BLK_DEV_INITRD
+
static int __init rdinit_setup(char *str)
{
unsigned int i;
@@ -342,6 +346,9 @@ static int __init rdinit_setup(char *str)
}
__setup("rdinit=", rdinit_setup);

+
+#endif
+
#ifndef CONFIG_SMP

#ifdef CONFIG_X86_LOCAL_APIC
@@ -850,12 +857,16 @@ static noinline int init_post(void)

current->signal->flags |= SIGNAL_UNKILLABLE;

+#ifdef CONFIG_BLK_DEV_INITRD
+
if (ramdisk_execute_command) {
run_init_process(ramdisk_execute_command);
printk(KERN_WARNING "Failed to execute %s\n",
ramdisk_execute_command);
}

+#endif
+
/*
* We try each of these until one succeeds.
*
@@ -909,6 +920,8 @@ static int __init kernel_init(void * unused)

do_basic_setup();

+#ifdef CONFIG_BLK_DEV_INITRD
+
/*
* check if there is an early userspace init. If yes, let it do all
* the work
@@ -922,6 +935,8 @@ static int __init kernel_init(void * unused)
prepare_namespace();
}

+#endif
+
/*
* Ok, we have completed the initial bootup, and
* we're essentially up and running. Get rid of the

========================================================================
Robert P. J. Day Waterloo, Ontario, CANADA

Linux Consulting, Training and Annoying Kernel Pedantry.

Web page: http://crashcourse.ca
Twitter: http://twitter.com/rpjday
"Kernel Newbie Corner" column @ linux.com: http://cli.gs/WG6WYX
========================================================================
--
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/