From: Russell King <rmk+lkml@arm.linux.org.uk>

Rework the declaration, sizing and memcpying of saved_command_line[] so
that ARM doesn't need to implement unwelcome header file nestings.

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/arch/alpha/kernel/setup.c     |    1 +
 25-akpm/arch/cris/kernel/setup.c      |    2 ++
 25-akpm/arch/h8300/kernel/setup.c     |    4 ++--
 25-akpm/arch/ia64/kernel/setup.c      |    3 ++-
 25-akpm/arch/m68knommu/kernel/setup.c |    4 ++--
 25-akpm/arch/mips/kernel/setup.c      |    3 ++-
 25-akpm/arch/parisc/kernel/setup.c    |    1 +
 25-akpm/arch/ppc/kernel/setup.c       |    2 +-
 25-akpm/arch/ppc64/kernel/setup.c     |    3 ++-
 25-akpm/arch/sh/kernel/setup.c        |    1 +
 25-akpm/arch/sparc/kernel/setup.c     |    1 +
 25-akpm/arch/sparc64/kernel/setup.c   |    1 +
 25-akpm/arch/v850/kernel/setup.c      |    5 +++--
 25-akpm/arch/x86_64/kernel/head64.c   |    1 +
 25-akpm/arch/x86_64/kernel/setup.c    |    1 +
 25-akpm/include/linux/init.h          |    3 +--
 25-akpm/init/main.c                   |    1 +
 17 files changed, 25 insertions(+), 12 deletions(-)

diff -puN arch/alpha/kernel/setup.c~arm-build-fix arch/alpha/kernel/setup.c
--- 25/arch/alpha/kernel/setup.c~arm-build-fix	2004-06-26 14:04:01.729699256 -0700
+++ 25-akpm/arch/alpha/kernel/setup.c	2004-06-26 14:04:01.756695152 -0700
@@ -39,6 +39,7 @@
 #include <linux/reboot.h>
 #endif
 #include <linux/notifier.h>
+#include <asm/setup.h>
 #include <asm/io.h>
 
 extern struct notifier_block *panic_notifier_list;
diff -puN arch/cris/kernel/setup.c~arm-build-fix arch/cris/kernel/setup.c
--- 25/arch/cris/kernel/setup.c~arm-build-fix	2004-06-26 14:04:01.730699104 -0700
+++ 25-akpm/arch/cris/kernel/setup.c	2004-06-26 14:04:01.756695152 -0700
@@ -18,6 +18,8 @@
 #include <linux/seq_file.h>
 #include <linux/tty.h>
 
+#include <asm/setup.h>
+
 /*
  * Setup options
  */
diff -puN arch/h8300/kernel/setup.c~arm-build-fix arch/h8300/kernel/setup.c
--- 25/arch/h8300/kernel/setup.c~arm-build-fix	2004-06-26 14:04:01.732698800 -0700
+++ 25-akpm/arch/h8300/kernel/setup.c	2004-06-26 14:04:01.756695152 -0700
@@ -155,8 +155,8 @@ void __init setup_arch(char **cmdline_p)
 #endif
 	/* Keep a copy of command line */
 	*cmdline_p = &command_line[0];
-	memcpy(saved_command_line, command_line, sizeof(saved_command_line));
-	saved_command_line[sizeof(saved_command_line)-1] = 0;
+	memcpy(saved_command_line, command_line, COMMAND_LINE_SIZE);
+	saved_command_line[COMMAND_LINE_SIZE-1] = 0;
 
 #ifdef DEBUG
 	if (strlen(*cmdline_p)) 
diff -puN arch/ia64/kernel/setup.c~arm-build-fix arch/ia64/kernel/setup.c
--- 25/arch/ia64/kernel/setup.c~arm-build-fix	2004-06-26 14:04:01.733698648 -0700
+++ 25-akpm/arch/ia64/kernel/setup.c	2004-06-26 14:04:01.757695000 -0700
@@ -47,6 +47,7 @@
 #include <asm/sal.h>
 #include <asm/sections.h>
 #include <asm/serial.h>
+#include <asm/setup.h>
 #include <asm/smp.h>
 #include <asm/system.h>
 #include <asm/unistd.h>
@@ -285,7 +286,7 @@ setup_arch (char **cmdline_p)
 	ia64_patch_vtop((u64) __start___vtop_patchlist, (u64) __end___vtop_patchlist);
 
 	*cmdline_p = __va(ia64_boot_param->command_line);
-	strlcpy(saved_command_line, *cmdline_p, sizeof(saved_command_line));
+	strlcpy(saved_command_line, *cmdline_p, COMMAND_LINE_SIZE);
 
 	efi_init();
 	io_port_init();
diff -puN arch/m68knommu/kernel/setup.c~arm-build-fix arch/m68knommu/kernel/setup.c
--- 25/arch/m68knommu/kernel/setup.c~arm-build-fix	2004-06-26 14:04:01.735698344 -0700
+++ 25-akpm/arch/m68knommu/kernel/setup.c	2004-06-26 14:04:01.758694848 -0700
@@ -216,8 +216,8 @@ void setup_arch(char **cmdline_p)
 
 	/* Keep a copy of command line */
 	*cmdline_p = &command_line[0];
-	memcpy(saved_command_line, command_line, sizeof(saved_command_line));
-	saved_command_line[sizeof(saved_command_line)-1] = 0;
+	memcpy(saved_command_line, command_line, COMMAND_LINE_SIZE);
+	saved_command_line[COMMAND_LINE_SIZE-1] = 0;
 
 #ifdef DEBUG
 	if (strlen(*cmdline_p)) 
diff -puN arch/mips/kernel/setup.c~arm-build-fix arch/mips/kernel/setup.c
--- 25/arch/mips/kernel/setup.c~arm-build-fix	2004-06-26 14:04:01.736698192 -0700
+++ 25-akpm/arch/mips/kernel/setup.c	2004-06-26 14:04:01.758694848 -0700
@@ -38,6 +38,7 @@
 #include <asm/bootinfo.h>
 #include <asm/cpu.h>
 #include <asm/sections.h>
+#include <asm/setup.h>
 #include <asm/system.h>
 
 struct cpuinfo_mips cpu_data[NR_CPUS];
@@ -489,7 +490,7 @@ void __init setup_arch(char **cmdline_p)
 	do_earlyinitcalls();
 
 	strlcpy(command_line, arcs_cmdline, sizeof(command_line));
-	strlcpy(saved_command_line, command_line, sizeof(saved_command_line));
+	strlcpy(saved_command_line, command_line, COMMAND_LINE_SIZE);
 
 	*cmdline_p = command_line;
 
diff -puN arch/parisc/kernel/setup.c~arm-build-fix arch/parisc/kernel/setup.c
--- 25/arch/parisc/kernel/setup.c~arm-build-fix	2004-06-26 14:04:01.738697888 -0700
+++ 25-akpm/arch/parisc/kernel/setup.c	2004-06-26 14:04:01.759694696 -0700
@@ -44,6 +44,7 @@
 #include <asm/machdep.h>	/* for pa7300lc_init() proto */
 #include <asm/pdc_chassis.h>
 #include <asm/io.h>
+#include <asm/setup.h>
 
 char	command_line[COMMAND_LINE_SIZE];
 
diff -puN arch/ppc64/kernel/setup.c~arm-build-fix arch/ppc64/kernel/setup.c
--- 25/arch/ppc64/kernel/setup.c~arm-build-fix	2004-06-26 14:04:01.739697736 -0700
+++ 25-akpm/arch/ppc64/kernel/setup.c	2004-06-26 14:04:01.760694544 -0700
@@ -44,6 +44,7 @@
 #include <asm/sections.h>
 #include <asm/btext.h>
 #include <asm/nvram.h>
+#include <asm/setup.h>
 #include <asm/system.h>
 
 extern unsigned long klimit;
@@ -629,7 +630,7 @@ void __init setup_arch(char **cmdline_p)
 	init_mm.brk = klimit;
 	
 	/* Save unparsed command line copy for /proc/cmdline */
-	strlcpy(saved_command_line, cmd_line, sizeof(saved_command_line));
+	strlcpy(saved_command_line, cmd_line, COMMAND_LINE_SIZE);
 	*cmdline_p = cmd_line;
 
 	irqstack_early_init();
diff -puN arch/ppc/kernel/setup.c~arm-build-fix arch/ppc/kernel/setup.c
--- 25/arch/ppc/kernel/setup.c~arm-build-fix	2004-06-26 14:04:01.741697432 -0700
+++ 25-akpm/arch/ppc/kernel/setup.c	2004-06-26 14:04:01.759694696 -0700
@@ -676,7 +676,7 @@ void __init setup_arch(char **cmdline_p)
 	init_mm.brk = (unsigned long) klimit;
 
 	/* Save unparsed command line copy for /proc/cmdline */
-	strlcpy(saved_command_line, cmd_line, sizeof(saved_command_line));
+	strlcpy(saved_command_line, cmd_line, COMMAND_LINE_SIZE);
 	*cmdline_p = cmd_line;
 
 	/* set up the bootmem stuff with available memory */
diff -puN arch/sh/kernel/setup.c~arm-build-fix arch/sh/kernel/setup.c
--- 25/arch/sh/kernel/setup.c~arm-build-fix	2004-06-26 14:04:01.742697280 -0700
+++ 25-akpm/arch/sh/kernel/setup.c	2004-06-26 14:04:01.761694392 -0700
@@ -25,6 +25,7 @@
 #include <asm/io_generic.h>
 #include <asm/sections.h>
 #include <asm/irq.h>
+#include <asm/setup.h>
 
 #ifdef CONFIG_SH_KGDB
 #include <asm/kgdb.h>
diff -puN arch/sparc64/kernel/setup.c~arm-build-fix arch/sparc64/kernel/setup.c
--- 25/arch/sparc64/kernel/setup.c~arm-build-fix	2004-06-26 14:04:01.743697128 -0700
+++ 25-akpm/arch/sparc64/kernel/setup.c	2004-06-26 14:04:01.762694240 -0700
@@ -47,6 +47,7 @@
 #include <asm/mmu_context.h>
 #include <asm/timer.h>
 #include <asm/sections.h>
+#include <asm/setup.h>
 
 #ifdef CONFIG_IP_PNP
 #include <net/ipconfig.h>
diff -puN arch/sparc/kernel/setup.c~arm-build-fix arch/sparc/kernel/setup.c
--- 25/arch/sparc/kernel/setup.c~arm-build-fix	2004-06-26 14:04:01.745696824 -0700
+++ 25-akpm/arch/sparc/kernel/setup.c	2004-06-26 14:04:01.761694392 -0700
@@ -47,6 +47,7 @@
 #include <asm/hardirq.h>
 #include <asm/machines.h>
 #include <asm/cpudata.h>
+#include <asm/setup.h>
 
 struct screen_info screen_info = {
 	0, 0,			/* orig-x, orig-y */
diff -puN arch/v850/kernel/setup.c~arm-build-fix arch/v850/kernel/setup.c
--- 25/arch/v850/kernel/setup.c~arm-build-fix	2004-06-26 14:04:01.746696672 -0700
+++ 25-akpm/arch/v850/kernel/setup.c	2004-06-26 14:04:01.762694240 -0700
@@ -23,6 +23,7 @@
 #include <linux/init.h>
 
 #include <asm/irq.h>
+#include <asm/setup.h>
 
 #include "mach.h"
 
@@ -63,8 +64,8 @@ void __init setup_arch (char **cmdline)
 {
 	/* Keep a copy of command line */
 	*cmdline = command_line;
-	memcpy (saved_command_line, command_line, sizeof saved_command_line);
-	saved_command_line[sizeof saved_command_line - 1] = '\0';
+	memcpy (saved_command_line, command_line, COMMAND_LINE_SIZE);
+	saved_command_line[COMMAND_LINE_SIZE - 1] = '\0';
 
 	console_verbose ();
 
diff -puN arch/x86_64/kernel/head64.c~arm-build-fix arch/x86_64/kernel/head64.c
--- 25/arch/x86_64/kernel/head64.c~arm-build-fix	2004-06-26 14:04:01.747696520 -0700
+++ 25-akpm/arch/x86_64/kernel/head64.c	2004-06-26 14:04:01.763694088 -0700
@@ -16,6 +16,7 @@
 #include <asm/proto.h>
 #include <asm/smp.h>
 #include <asm/bootsetup.h>
+#include <asm/setup.h>
 
 /* Don't add a printk in there. printk relies on the PDA which is not initialized 
    yet. */
diff -puN arch/x86_64/kernel/setup.c~arm-build-fix arch/x86_64/kernel/setup.c
--- 25/arch/x86_64/kernel/setup.c~arm-build-fix	2004-06-26 14:04:01.749696216 -0700
+++ 25-akpm/arch/x86_64/kernel/setup.c	2004-06-26 14:04:01.763694088 -0700
@@ -55,6 +55,7 @@
 #include <asm/bootsetup.h>
 #include <asm/smp.h>
 #include <asm/proto.h>
+#include <asm/setup.h>
 
 /*
  * Machine setup..
diff -puN include/linux/init.h~arm-build-fix include/linux/init.h
--- 25/include/linux/init.h~arm-build-fix	2004-06-26 14:04:01.750696064 -0700
+++ 25-akpm/include/linux/init.h	2004-06-26 14:04:01.764693936 -0700
@@ -3,7 +3,6 @@
 
 #include <linux/config.h>
 #include <linux/compiler.h>
-#include <asm/setup.h>
 
 /* These macros are used to mark some functions or 
  * initialized data (doesn't apply to uninitialized data)
@@ -69,7 +68,7 @@ extern initcall_t __con_initcall_start, 
 extern initcall_t __security_initcall_start, __security_initcall_end;
 
 /* Defined in init/main.c */
-extern char saved_command_line[COMMAND_LINE_SIZE];
+extern char saved_command_line[];
 #endif
   
 #ifndef MODULE
diff -puN init/main.c~arm-build-fix init/main.c
--- 25/init/main.c~arm-build-fix	2004-06-26 14:04:01.751695912 -0700
+++ 25-akpm/init/main.c	2004-06-26 14:04:01.765693784 -0700
@@ -47,6 +47,7 @@
 
 #include <asm/io.h>
 #include <asm/bugs.h>
+#include <asm/setup.h>
 
 /*
  * This is one of the first .c files built. Error out early
_