[PATCH] Dynamic kernel command-line: fixups

Remove in-source externs, linux/init.h is included in all cases.
This is a fixups for "Dynamic kernel command-line" patch.

It also includes some uml __init fixups so that we can __initdata also its
command_line.

Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
Cc: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c
index b12d6d1..772ba6f 100644
--- a/arch/ia64/kernel/efi.c
+++ b/arch/ia64/kernel/efi.c
@@ -405,8 +405,6 @@
 	ia64_srlz_i();
 }
 
-extern char __initdata boot_command_line[];
-
 void __init
 efi_init (void)
 {
diff --git a/arch/ia64/kernel/sal.c b/arch/ia64/kernel/sal.c
index 831d57f..37c876f 100644
--- a/arch/ia64/kernel/sal.c
+++ b/arch/ia64/kernel/sal.c
@@ -190,8 +190,6 @@
 	}
 }
 
-extern char __initdata boot_command_line[];
-
 static void __init
 chk_nointroute_opt(void)
 {
diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c
index f355fb5..12117db 100644
--- a/arch/parisc/mm/init.c
+++ b/arch/parisc/mm/init.c
@@ -77,7 +77,6 @@
 {
 	char *cp, *end;
 	unsigned long limit;
-	extern char __initdata boot_command_line[];
 
 	/* We need this before __setup() functions are called */
 
diff --git a/arch/um/include/user_util.h b/arch/um/include/user_util.h
index 0f63003..023575f 100644
--- a/arch/um/include/user_util.h
+++ b/arch/um/include/user_util.h
@@ -38,8 +38,6 @@
 
 extern char host_info[];
 
-extern char __initdata boot_command_line[];
-
 extern unsigned long _stext, _etext, _sdata, _edata, __bss_start, _end;
 extern unsigned long _unprotected_end;
 extern unsigned long brk_start;
diff --git a/arch/um/kernel/um_arch.c b/arch/um/kernel/um_arch.c
index 668eba2..89c6dba 100644
--- a/arch/um/kernel/um_arch.c
+++ b/arch/um/kernel/um_arch.c
@@ -43,9 +43,9 @@
 #define DEFAULT_COMMAND_LINE "root=98:0"
 
 /* Changed in linux_main and setup_arch, which run before SMP is started */
-static char command_line[COMMAND_LINE_SIZE] = { 0 };
+static char __initdata command_line[COMMAND_LINE_SIZE] = { 0 };
 
-static void add_arg(char *arg)
+static void __init add_arg(char *arg)
 {
 	if (strlen(command_line) + strlen(arg) + 1 > COMMAND_LINE_SIZE) {
 		printf("add_arg: Too many command line arguments!\n");
@@ -330,7 +330,7 @@
 
 extern char __binary_start;
 
-int linux_main(int argc, char **argv)
+int __init linux_main(int argc, char **argv)
 {
 	unsigned long avail, diff;
 	unsigned long virtmem_size, max_physmem;
diff --git a/arch/x86_64/kernel/head64.c b/arch/x86_64/kernel/head64.c
index be4bfb4..5f197b0 100644
--- a/arch/x86_64/kernel/head64.c
+++ b/arch/x86_64/kernel/head64.c
@@ -34,8 +34,6 @@
 #define OLD_CL_BASE_ADDR        0x90000
 #define OLD_CL_OFFSET           0x90022
 
-extern char __initdata boot_command_line[];
-
 static void __init copy_bootdata(char *real_mode_data)
 {
 	int new_data;