* [PATCH 01/26] Dynamic kernel command-line - common
2006-09-03 21:50 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
@ 2006-09-03 21:52 ` Alon Bar-Lev
2006-09-03 22:10 ` Matthew Wilcox
0 siblings, 1 reply; 33+ messages in thread
From: Alon Bar-Lev @ 2006-09-03 21:52 UTC (permalink / raw)
To: Andi Kleen
Cc: Matt Domsch, Andrew Morton, linux-kernel, johninsd, davej, Riley,
trini, davem, ecd, jj, anton, wli, lethal, rc, spyro, rth, avr32,
hskinnemoen, starvik, ralf, matthew, grundler, geert, zippel,
paulus, schwidefsky, heiko.carstens, uclinux-v850, chris
1. Rename saved_command_line into boot_command_line, mark
as init disposable.
2. Add dynamic allocated saved_command_line.
3. Add dynamic allocated static_command_line.
4. During startup copy:
boot_command_line into saved_command_line.
arch command_line into static_command_line.
5. Parse static_command_line and not
arch command_line, so arch command_line may
be freed.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.18-rc5-mm1.org/include/linux/init.h
linux-2.6.18-rc5-mm1/include/linux/init.h
--- linux-2.6.18-rc5-mm1.org/include/linux/init.h 2006-09-03
18:57:16.000000000 +0300
+++ linux-2.6.18-rc5-mm1/include/linux/init.h 2006-09-03
20:30:12.000000000 +0300
@@ -67,7 +67,8 @@ 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[];
+extern char __initdata boot_command_line[];
+extern char *saved_command_line;
extern unsigned int reset_devices;
/* used by init/main.c */
@@ -145,7 +146,7 @@ struct obs_kernel_param {
#define early_param(str, fn) \
__setup_param(str, fn, fn, 1)
-/* Relies on saved_command_line being set */
+/* Relies on boot_command_line being set */
void __init parse_early_param(void);
#endif /* __ASSEMBLY__ */
diff -urNp linux-2.6.18-rc5-mm1.org/init/main.c
linux-2.6.18-rc5-mm1/init/main.c
--- linux-2.6.18-rc5-mm1.org/init/main.c 2006-09-03
18:57:18.000000000 +0300
+++ linux-2.6.18-rc5-mm1/init/main.c 2006-09-03
23:27:30.000000000 +0300
@@ -116,8 +116,12 @@ extern void time_init(void);
void (*late_time_init)(void);
extern void softirq_init(void);
-/* Untouched command line (eg. for /proc) saved by
arch-specific code. */
-char saved_command_line[COMMAND_LINE_SIZE];
+/* Untouched command line saved by arch-specific code. */
+char __initdata boot_command_line[COMMAND_LINE_SIZE];
+/* Untouched saved command line (eg. for /proc) */
+char *saved_command_line;
+/* Command line for parameter parsing */
+static char *static_command_line;
static char *execute_command;
static char *ramdisk_execute_command;
@@ -400,6 +404,20 @@ static void __init smp_init(void)
#endif
/*
+ * We need to store the untouched command line for future
reference.
+ * We also need to store the touched command line since the
parameter
+ * parsing is performed in place, and we should allow a
component to
+ * store reference of name/value for future reference.
+ */
+static void __init setup_command_line(char *command_line)
+{
+ saved_command_line = alloc_bootmem(strlen
(boot_command_line)+1);
+ static_command_line = alloc_bootmem(strlen
(command_line)+1);
+ strcpy (saved_command_line, boot_command_line);
+ strcpy (static_command_line, command_line);
+}
+
+/*
* We need to finalize in a non-__init function or else
race conditions
* between the root thread and the init thread may cause
start_kernel to
* be reaped by free_initmem before the root thread has
proceeded to
@@ -453,7 +471,7 @@ void __init parse_early_param(void)
return;
/* All fall through to do_early_param. */
- strlcpy(tmp_cmdline, saved_command_line,
COMMAND_LINE_SIZE);
+ strlcpy(tmp_cmdline, boot_command_line,
COMMAND_LINE_SIZE);
parse_args("early options", tmp_cmdline, NULL, 0,
do_early_param);
done = 1;
}
@@ -503,6 +521,7 @@ asmlinkage void __init start_kernel(void
printk(KERN_NOTICE);
printk(linux_banner);
setup_arch(&command_line);
+ setup_command_line(command_line);
setup_per_cpu_areas();
smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
@@ -519,9 +538,9 @@ asmlinkage void __init start_kernel(void
preempt_disable();
build_all_zonelists();
page_alloc_init();
- printk(KERN_NOTICE "Kernel command line: %s\n",
saved_command_line);
+ printk(KERN_NOTICE "Kernel command line: %s\n",
boot_command_line);
parse_early_param();
- parse_args("Booting kernel", command_line,
__start___param,
+ parse_args("Booting kernel", static_command_line,
__start___param,
__stop___param - __start___param,
&unknown_bootoption);
sort_main_extable();
--
VGER BF report: H 0.00112924
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 01/26] Dynamic kernel command-line - common
2006-09-03 21:52 ` [PATCH 01/26] Dynamic kernel command-line - common Alon Bar-Lev
@ 2006-09-03 22:10 ` Matthew Wilcox
2006-09-03 22:12 ` Alon Bar-Lev
2006-09-05 23:52 ` Bill Davidsen
0 siblings, 2 replies; 33+ messages in thread
From: Matthew Wilcox @ 2006-09-03 22:10 UTC (permalink / raw)
To: Alon Bar-Lev
Cc: Andi Kleen, Matt Domsch, Andrew Morton, linux-kernel, johninsd,
davej, Riley, trini, davem, ecd, jj, anton, wli, lethal, rc,
spyro, rth, avr32, hskinnemoen, starvik, ralf, grundler, geert,
zippel, paulus, schwidefsky, heiko.carstens, uclinux-v850, chris
On Mon, Sep 04, 2006 at 12:52:14AM +0300, Alon Bar-Lev wrote:
> @@ -116,8 +116,12 @@ extern void time_init(void);
> void (*late_time_init)(void);
> extern void softirq_init(void);
>
> -/* Untouched command line (eg. for /proc) saved by
> arch-specific code. */
> -char saved_command_line[COMMAND_LINE_SIZE];
> +/* Untouched command line saved by arch-specific code. */
> +char __initdata boot_command_line[COMMAND_LINE_SIZE];
Your patch is wordwrapped.
Also, what was the point of all this? Was there some discussion that
this would be useful?
--
VGER BF report: H 0.0043987
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 01/26] Dynamic kernel command-line - common
2006-09-03 22:10 ` Matthew Wilcox
@ 2006-09-03 22:12 ` Alon Bar-Lev
2006-09-05 23:52 ` Bill Davidsen
1 sibling, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-09-03 22:12 UTC (permalink / raw)
To: Matthew Wilcox
Cc: Andi Kleen, Matt Domsch, Andrew Morton, linux-kernel, johninsd,
davej, Riley, trini, davem, ecd, jj, anton, wli, lethal, rc,
spyro, rth, avr32, hskinnemoen, starvik, ralf, grundler, geert,
zippel, paulus, schwidefsky, heiko.carstens, uclinux-v850, chris
On Monday 04 September 2006 01:10, Matthew Wilcox wrote:
> Your patch is wordwrapped.
Thanks!
My mistake!
I will send again.
> Also, what was the point of all this? Was there some
> discussion that this would be useful?
Yes. We are trying to make kernel parameter size much larger
than 256 bytes (at least for x86).
And some developers commented that small systems will be
affected if static buffer enlarged.
Best Regards,
Alon Bar-Lev.
--
VGER BF report: H 2.02507e-07
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 01/26] Dynamic kernel command-line - common
2006-09-03 22:15 [PATCH 00/26] Dynamic kernel command-line - Resend please ignore last Alon Bar-Lev
@ 2006-09-03 22:16 ` Alon Bar-Lev
0 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-09-03 22:16 UTC (permalink / raw)
To: Andi Kleen
Cc: Matt Domsch, Andrew Morton, linux-kernel, johninsd, davej, Riley,
trini, davem, ecd, jj, anton, wli, lethal, rc, spyro, rth, avr32,
hskinnemoen, starvik, ralf, matthew, grundler, geert, zippel,
paulus, schwidefsky, heiko.carstens, uclinux-v850, chris
1. Rename saved_command_line into boot_command_line, mark
as init disposable.
2. Add dynamic allocated saved_command_line.
3. Add dynamic allocated static_command_line.
4. During startup copy:
boot_command_line into saved_command_line.
arch command_line into static_command_line.
5. Parse static_command_line and not
arch command_line, so arch command_line may
be freed.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.18-rc5-mm1.org/include/linux/init.h linux-2.6.18-rc5-mm1/include/linux/init.h
--- linux-2.6.18-rc5-mm1.org/include/linux/init.h 2006-09-03 18:57:16.000000000 +0300
+++ linux-2.6.18-rc5-mm1/include/linux/init.h 2006-09-03 20:30:12.000000000 +0300
@@ -67,7 +67,8 @@ 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[];
+extern char __initdata boot_command_line[];
+extern char *saved_command_line;
extern unsigned int reset_devices;
/* used by init/main.c */
@@ -145,7 +146,7 @@ struct obs_kernel_param {
#define early_param(str, fn) \
__setup_param(str, fn, fn, 1)
-/* Relies on saved_command_line being set */
+/* Relies on boot_command_line being set */
void __init parse_early_param(void);
#endif /* __ASSEMBLY__ */
diff -urNp linux-2.6.18-rc5-mm1.org/init/main.c linux-2.6.18-rc5-mm1/init/main.c
--- linux-2.6.18-rc5-mm1.org/init/main.c 2006-09-03 18:57:18.000000000 +0300
+++ linux-2.6.18-rc5-mm1/init/main.c 2006-09-03 23:27:30.000000000 +0300
@@ -116,8 +116,12 @@ extern void time_init(void);
void (*late_time_init)(void);
extern void softirq_init(void);
-/* Untouched command line (eg. for /proc) saved by arch-specific code. */
-char saved_command_line[COMMAND_LINE_SIZE];
+/* Untouched command line saved by arch-specific code. */
+char __initdata boot_command_line[COMMAND_LINE_SIZE];
+/* Untouched saved command line (eg. for /proc) */
+char *saved_command_line;
+/* Command line for parameter parsing */
+static char *static_command_line;
static char *execute_command;
static char *ramdisk_execute_command;
@@ -400,6 +404,20 @@ static void __init smp_init(void)
#endif
/*
+ * We need to store the untouched command line for future reference.
+ * We also need to store the touched command line since the parameter
+ * parsing is performed in place, and we should allow a component to
+ * store reference of name/value for future reference.
+ */
+static void __init setup_command_line(char *command_line)
+{
+ saved_command_line = alloc_bootmem(strlen (boot_command_line)+1);
+ static_command_line = alloc_bootmem(strlen (command_line)+1);
+ strcpy (saved_command_line, boot_command_line);
+ strcpy (static_command_line, command_line);
+}
+
+/*
* We need to finalize in a non-__init function or else race conditions
* between the root thread and the init thread may cause start_kernel to
* be reaped by free_initmem before the root thread has proceeded to
@@ -453,7 +471,7 @@ void __init parse_early_param(void)
return;
/* All fall through to do_early_param. */
- strlcpy(tmp_cmdline, saved_command_line, COMMAND_LINE_SIZE);
+ strlcpy(tmp_cmdline, boot_command_line, COMMAND_LINE_SIZE);
parse_args("early options", tmp_cmdline, NULL, 0, do_early_param);
done = 1;
}
@@ -503,6 +521,7 @@ asmlinkage void __init start_kernel(void
printk(KERN_NOTICE);
printk(linux_banner);
setup_arch(&command_line);
+ setup_command_line(command_line);
setup_per_cpu_areas();
smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
@@ -519,9 +538,9 @@ asmlinkage void __init start_kernel(void
preempt_disable();
build_all_zonelists();
page_alloc_init();
- printk(KERN_NOTICE "Kernel command line: %s\n", saved_command_line);
+ printk(KERN_NOTICE "Kernel command line: %s\n", boot_command_line);
parse_early_param();
- parse_args("Booting kernel", command_line, __start___param,
+ parse_args("Booting kernel", static_command_line, __start___param,
__stop___param - __start___param,
&unknown_bootoption);
sort_main_extable();
--
VGER BF report: H 0
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 01/26] Dynamic kernel command-line - common
2006-09-03 22:10 ` Matthew Wilcox
2006-09-03 22:12 ` Alon Bar-Lev
@ 2006-09-05 23:52 ` Bill Davidsen
1 sibling, 0 replies; 33+ messages in thread
From: Bill Davidsen @ 2006-09-05 23:52 UTC (permalink / raw)
To: Matthew Wilcox
Cc: Andi Kleen, Matt Domsch, Andrew Morton, linux-kernel, johninsd,
davej, Riley, trini, davem, ecd, jj, anton, wli, lethal, rc,
spyro, rth, avr32, hskinnemoen, starvik, ralf, grundler, geert,
zippel, paulus, schwidefsky, heiko.carstens, uclinux-v850, chris
Matthew Wilcox wrote:
> On Mon, Sep 04, 2006 at 12:52:14AM +0300, Alon Bar-Lev wrote:
>> @@ -116,8 +116,12 @@ extern void time_init(void);
>> void (*late_time_init)(void);
>> extern void softirq_init(void);
>>
>> -/* Untouched command line (eg. for /proc) saved by
>> arch-specific code. */
>> -char saved_command_line[COMMAND_LINE_SIZE];
>> +/* Untouched command line saved by arch-specific code. */
>> +char __initdata boot_command_line[COMMAND_LINE_SIZE];
>
> Your patch is wordwrapped.
>
> Also, what was the point of all this? Was there some discussion that
> this would be useful?
>
Assuming that this works as described, the benefits are obvious. In most
cases I would expect the memory saved to be more than the patch takes,
and the patch is init code. Having the possibility of having very long
command lines is bound to be useful on occasion, particularly when using
drivers with option-names-way-too-long.
I agree that this wouldn't make my top 200 list of wanted features, but
it's here, it saves a little memory, it adds a capability someone will
find useful, why not use it? It appears to be a small win in every case.
--
Bill Davidsen <davidsen@tmr.com>
Obscure bug of 2004: BASH BUFFER OVERFLOW - if bash is being run by a
normal user and is setuid root, with the "vi" line edit mode selected,
and the character set is "big5," an off-by-one errors occurs during
wildcard (glob) expansion.
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 00/26] Dynamic kernel command-line
@ 2006-12-02 10:47 Alon Bar-Lev
2006-12-02 10:48 ` [PATCH 01/26] Dynamic kernel command-line - common Alon Bar-Lev
` (25 more replies)
0 siblings, 26 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:47 UTC (permalink / raw)
To: linux-arch, linux-kernel
Hello,
This is take 3 of submission, I submit this patch
once in a few monthes to collect some more signatures :)
Until now, I got three:
- avr32
- sh
- sh64
I know this is not one of major priorities, but it
should be simple enough to be reviewed and included.
I will also be happy to get a REJECT response, so I
stop trying to get it included. Any suggestions of
how to push this farward will also be appreciated.
Current implementation stores a static command-line
buffer allocated to COMMAND_LINE_SIZE size. Most
architectures stores two copies of this buffer, one
for future reference and one for parameter parsing.
Current kernel command-line size for most architecture
is much too small for module parameters, video settings,
initramfs paramters and much more. The problem is that
setting COMMAND_LINE_SIZE to a grater value, allocates
static buffers.
In order to allow a greater command-line size, these
buffers should be dynamically allocated or marked
as init disposable buffers, so unused memory can be
released.
This patch renames the static saved_command_line
variable into boot_command_line adding __initdata
attribute, so that it can be disposed after
initialization. This rename is required so applications
that use saved_command_line will not be affected
by this change.
It reintroduces saved_command_line as dynamically
allocated buffer to match the data in boot_command_line.
It also mark secondary command-line buffer as __initdata,
and copies it to dynamically allocated static_command_line
buffer components may hold reference to it after
initialization.
This patch is for linux-2.6.19 and is divided to
target each architecture. I could not check this in any
architecture so please forgive me if I got it wrong.
The per-architecture modification is very simple, use
boot_command_line in place of saved_command_line. The
common code is the change into dynamic command-line.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 01/26] Dynamic kernel command-line - common
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
@ 2006-12-02 10:48 ` Alon Bar-Lev
2006-12-02 10:48 ` [PATCH 02/26] Dynamic kernel command-line - alpha Alon Bar-Lev
` (24 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:48 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line, mark
as init disposable.
2. Add dynamic allocated saved_command_line.
3. Add dynamic allocated static_command_line.
4. During startup copy:
boot_command_line into saved_command_line.
arch command_line into static_command_line.
5. Parse static_command_line and not
arch command_line, so arch command_line may
be freed.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/include/linux/init.h linux-2.6.19/include/linux/init.h
--- linux-2.6.19.org/include/linux/init.h 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/include/linux/init.h 2006-12-02 11:31:32.000000000 +0200
@@ -67,7 +67,8 @@ 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[];
+extern char __initdata boot_command_line[];
+extern char *saved_command_line;
extern unsigned int reset_devices;
/* used by init/main.c */
@@ -163,7 +164,7 @@ struct obs_kernel_param {
#define early_param(str, fn) \
__setup_param(str, fn, fn, 1)
-/* Relies on saved_command_line being set */
+/* Relies on boot_command_line being set */
void __init parse_early_param(void);
#endif /* __ASSEMBLY__ */
diff -urNp linux-2.6.19.org/init/main.c linux-2.6.19/init/main.c
--- linux-2.6.19.org/init/main.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/init/main.c 2006-12-02 11:33:35.000000000 +0200
@@ -116,8 +116,12 @@ extern void time_init(void);
void (*late_time_init)(void);
extern void softirq_init(void);
-/* Untouched command line (eg. for /proc) saved by arch-specific code. */
-char saved_command_line[COMMAND_LINE_SIZE];
+/* Untouched command line saved by arch-specific code. */
+char __initdata boot_command_line[COMMAND_LINE_SIZE];
+/* Untouched saved command line (eg. for /proc) */
+char *saved_command_line;
+/* Command line for parameter parsing */
+static char *static_command_line;
static char *execute_command;
static char *ramdisk_execute_command;
@@ -400,6 +404,20 @@ static void __init smp_init(void)
#endif
/*
+ * We need to store the untouched command line for future reference.
+ * We also need to store the touched command line since the parameter
+ * parsing is performed in place, and we should allow a component to
+ * store reference of name/value for future reference.
+ */
+static void __init setup_command_line(char *command_line)
+{
+ saved_command_line = alloc_bootmem(strlen (boot_command_line)+1);
+ static_command_line = alloc_bootmem(strlen (command_line)+1);
+ strcpy (saved_command_line, boot_command_line);
+ strcpy (static_command_line, command_line);
+}
+
+/*
* We need to finalize in a non-__init function or else race conditions
* between the root thread and the init thread may cause start_kernel to
* be reaped by free_initmem before the root thread has proceeded to
@@ -453,7 +471,7 @@ void __init parse_early_param(void)
return;
/* All fall through to do_early_param. */
- strlcpy(tmp_cmdline, saved_command_line, COMMAND_LINE_SIZE);
+ strlcpy(tmp_cmdline, boot_command_line, COMMAND_LINE_SIZE);
parse_args("early options", tmp_cmdline, NULL, 0, do_early_param);
done = 1;
}
@@ -503,6 +521,7 @@ asmlinkage void __init start_kernel(void
printk(KERN_NOTICE);
printk(linux_banner);
setup_arch(&command_line);
+ setup_command_line(command_line);
unwind_setup();
setup_per_cpu_areas();
smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
@@ -520,9 +539,9 @@ asmlinkage void __init start_kernel(void
preempt_disable();
build_all_zonelists();
page_alloc_init();
- printk(KERN_NOTICE "Kernel command line: %s\n", saved_command_line);
+ printk(KERN_NOTICE "Kernel command line: %s\n", boot_command_line);
parse_early_param();
- parse_args("Booting kernel", command_line, __start___param,
+ parse_args("Booting kernel", static_command_line, __start___param,
__stop___param - __start___param,
&unknown_bootoption);
sort_main_extable();
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 02/26] Dynamic kernel command-line - alpha
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
2006-12-02 10:48 ` [PATCH 01/26] Dynamic kernel command-line - common Alon Bar-Lev
@ 2006-12-02 10:48 ` Alon Bar-Lev
2006-12-02 10:49 ` [PATCH 03/26] Dynamic kernel command-line - arm Alon Bar-Lev
` (23 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:48 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/alpha/kernel/setup.c linux-2.6.19/arch/alpha/kernel/setup.c
--- linux-2.6.19.org/arch/alpha/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/alpha/kernel/setup.c 2006-12-02 11:31:32.000000000 +0200
@@ -122,7 +122,7 @@ static void get_sysnames(unsigned long,
char **, char **);
static void determine_cpu_caches (unsigned int);
-static char command_line[COMMAND_LINE_SIZE];
+static char __initdata command_line[COMMAND_LINE_SIZE];
/*
* The format of "screen_info" is strange, and due to early
@@ -547,7 +547,7 @@ setup_arch(char **cmdline_p)
} else {
strlcpy(command_line, COMMAND_LINE, sizeof command_line);
}
- strcpy(saved_command_line, command_line);
+ strcpy(boot_command_line, command_line);
*cmdline_p = command_line;
/*
@@ -589,7 +589,7 @@ setup_arch(char **cmdline_p)
}
/* Replace the command line, now that we've killed it with strsep. */
- strcpy(command_line, saved_command_line);
+ strcpy(command_line, boot_command_line);
/* If we want SRM console printk echoing early, do it now. */
if (alpha_using_srm && srmcons_output) {
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 03/26] Dynamic kernel command-line - arm
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
2006-12-02 10:48 ` [PATCH 01/26] Dynamic kernel command-line - common Alon Bar-Lev
2006-12-02 10:48 ` [PATCH 02/26] Dynamic kernel command-line - alpha Alon Bar-Lev
@ 2006-12-02 10:49 ` Alon Bar-Lev
2006-12-02 10:49 ` [PATCH 04/26] Dynamic kernel command-line - arm26 Alon Bar-Lev
` (22 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:49 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/arm/kernel/setup.c linux-2.6.19/arch/arm/kernel/setup.c
--- linux-2.6.19.org/arch/arm/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/arm/kernel/setup.c 2006-12-02 11:31:32.000000000 +0200
@@ -106,7 +106,7 @@ unsigned long phys_initrd_size __initdat
static struct meminfo meminfo __initdata = { 0, };
static const char *cpu_name;
static const char *machine_name;
-static char command_line[COMMAND_LINE_SIZE];
+static char __initdata command_line[COMMAND_LINE_SIZE];
static char default_command_line[COMMAND_LINE_SIZE] __initdata = CONFIG_CMDLINE;
static union { char c[4]; unsigned long l; } endian_test __initdata = { { 'l', '?', '?', 'b' } };
@@ -806,8 +806,8 @@ void __init setup_arch(char **cmdline_p)
init_mm.end_data = (unsigned long) &_edata;
init_mm.brk = (unsigned long) &_end;
- memcpy(saved_command_line, from, COMMAND_LINE_SIZE);
- saved_command_line[COMMAND_LINE_SIZE-1] = '\0';
+ memcpy(boot_command_line, from, COMMAND_LINE_SIZE);
+ boot_command_line[COMMAND_LINE_SIZE-1] = '\0';
parse_cmdline(cmdline_p, from);
paging_init(&meminfo, mdesc);
request_standard_resources(&meminfo, mdesc);
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 04/26] Dynamic kernel command-line - arm26
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (2 preceding siblings ...)
2006-12-02 10:49 ` [PATCH 03/26] Dynamic kernel command-line - arm Alon Bar-Lev
@ 2006-12-02 10:49 ` Alon Bar-Lev
2006-12-02 10:49 ` [PATCH 05/26] Dynamic kernel command-line - avr32 Alon Bar-Lev
` (21 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:49 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/arm26/kernel/setup.c linux-2.6.19/arch/arm26/kernel/setup.c
--- linux-2.6.19.org/arch/arm26/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/arm26/kernel/setup.c 2006-12-02 11:31:32.000000000 +0200
@@ -80,7 +80,7 @@ unsigned long phys_initrd_size __initdat
static struct meminfo meminfo __initdata = { 0, };
static struct proc_info_item proc_info;
static const char *machine_name;
-static char command_line[COMMAND_LINE_SIZE];
+static char __initdata command_line[COMMAND_LINE_SIZE];
static char default_command_line[COMMAND_LINE_SIZE] __initdata = CONFIG_CMDLINE;
@@ -492,8 +492,8 @@ void __init setup_arch(char **cmdline_p)
init_mm.end_data = (unsigned long) &_edata;
init_mm.brk = (unsigned long) &_end;
- memcpy(saved_command_line, from, COMMAND_LINE_SIZE);
- saved_command_line[COMMAND_LINE_SIZE-1] = '\0';
+ memcpy(boot_command_line, from, COMMAND_LINE_SIZE);
+ boot_command_line[COMMAND_LINE_SIZE-1] = '\0';
parse_cmdline(&meminfo, cmdline_p, from);
bootmem_init(&meminfo);
paging_init(&meminfo);
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 05/26] Dynamic kernel command-line - avr32
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (3 preceding siblings ...)
2006-12-02 10:49 ` [PATCH 04/26] Dynamic kernel command-line - arm26 Alon Bar-Lev
@ 2006-12-02 10:49 ` Alon Bar-Lev
2006-12-02 10:50 ` [PATCH 06/26] Dynamic kernel command-line - cris Alon Bar-Lev
` (20 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:49 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
Acked-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
---
diff -urNp linux-2.6.19.org/arch/avr32/kernel/setup.c linux-2.6.19/arch/avr32/kernel/setup.c
--- linux-2.6.19.org/arch/avr32/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/avr32/kernel/setup.c 2006-12-02 11:31:32.000000000 +0200
@@ -44,7 +44,7 @@ struct avr32_cpuinfo boot_cpu_data = {
};
EXPORT_SYMBOL(boot_cpu_data);
-static char command_line[COMMAND_LINE_SIZE];
+static char __initdata command_line[COMMAND_LINE_SIZE];
/*
* Should be more than enough, but if you have a _really_ complex
@@ -202,7 +202,7 @@ __tagtable(ATAG_MEM, parse_tag_mem);
static int __init parse_tag_cmdline(struct tag *tag)
{
- strlcpy(saved_command_line, tag->u.cmdline.cmdline, COMMAND_LINE_SIZE);
+ strlcpy(boot_command_line, tag->u.cmdline.cmdline, COMMAND_LINE_SIZE);
return 0;
}
__tagtable(ATAG_CMDLINE, parse_tag_cmdline);
@@ -318,7 +318,7 @@ void __init setup_arch (char **cmdline_p
init_mm.end_data = (unsigned long) &_edata;
init_mm.brk = (unsigned long) &_end;
- strlcpy(command_line, saved_command_line, COMMAND_LINE_SIZE);
+ strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
*cmdline_p = command_line;
parse_early_param();
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 06/26] Dynamic kernel command-line - cris
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (4 preceding siblings ...)
2006-12-02 10:49 ` [PATCH 05/26] Dynamic kernel command-line - avr32 Alon Bar-Lev
@ 2006-12-02 10:50 ` Alon Bar-Lev
2006-12-02 10:50 ` [PATCH 07/26] Dynamic kernel command-line - frv Alon Bar-Lev
` (19 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:50 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set cris_command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/cris/kernel/setup.c linux-2.6.19/arch/cris/kernel/setup.c
--- linux-2.6.19.org/arch/cris/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/cris/kernel/setup.c 2006-12-02 11:31:32.000000000 +0200
@@ -29,7 +29,7 @@ struct screen_info screen_info;
extern int root_mountflags;
extern char _etext, _edata, _end;
-char cris_command_line[COMMAND_LINE_SIZE] = { 0, };
+char __initdata cris_command_line[COMMAND_LINE_SIZE] = { 0, };
extern const unsigned long text_start, edata; /* set by the linker script */
extern unsigned long dram_start, dram_end;
@@ -153,8 +153,8 @@ setup_arch(char **cmdline_p)
#endif
/* Save command line for future references. */
- memcpy(saved_command_line, cris_command_line, COMMAND_LINE_SIZE);
- saved_command_line[COMMAND_LINE_SIZE - 1] = '\0';
+ memcpy(boot_command_line, cris_command_line, COMMAND_LINE_SIZE);
+ boot_command_line[COMMAND_LINE_SIZE - 1] = '\0';
/* give credit for the CRIS port */
show_etrax_copyright();
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 07/26] Dynamic kernel command-line - frv
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (5 preceding siblings ...)
2006-12-02 10:50 ` [PATCH 06/26] Dynamic kernel command-line - cris Alon Bar-Lev
@ 2006-12-02 10:50 ` Alon Bar-Lev
2006-12-02 10:50 ` [PATCH 08/26] Dynamic kernel command-line - h8300 Alon Bar-Lev
` (18 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:50 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/frv/kernel/setup.c linux-2.6.19/arch/frv/kernel/setup.c
--- linux-2.6.19.org/arch/frv/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/frv/kernel/setup.c 2006-12-02 11:31:32.000000000 +0200
@@ -110,7 +110,7 @@ unsigned long __initdata num_mappedpages
struct cpuinfo_frv __nongprelbss boot_cpu_data;
-char command_line[COMMAND_LINE_SIZE];
+char __initdata command_line[COMMAND_LINE_SIZE];
char __initdata redboot_command_line[COMMAND_LINE_SIZE];
#ifdef CONFIG_PM
@@ -762,7 +762,7 @@ void __init setup_arch(char **cmdline_p)
printk("uClinux FR-V port done by Red Hat Inc <dhowells@redhat.com>\n");
#endif
- memcpy(saved_command_line, redboot_command_line, COMMAND_LINE_SIZE);
+ memcpy(boot_command_line, redboot_command_line, COMMAND_LINE_SIZE);
determine_cpu();
determine_clocks(1);
@@ -803,7 +803,7 @@ void __init setup_arch(char **cmdline_p)
#endif
/* deal with the command line - RedBoot may have passed one to the kernel */
- memcpy(command_line, saved_command_line, sizeof(command_line));
+ memcpy(command_line, boot_command_line, sizeof(command_line));
*cmdline_p = &command_line[0];
parse_cmdline_early(command_line);
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 08/26] Dynamic kernel command-line - h8300
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (6 preceding siblings ...)
2006-12-02 10:50 ` [PATCH 07/26] Dynamic kernel command-line - frv Alon Bar-Lev
@ 2006-12-02 10:50 ` Alon Bar-Lev
2006-12-02 10:51 ` [PATCH 09/26] Dynamic kernel command-line - i386 Alon Bar-Lev
` (17 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:50 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/h8300/kernel/setup.c linux-2.6.19/arch/h8300/kernel/setup.c
--- linux-2.6.19.org/arch/h8300/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/h8300/kernel/setup.c 2006-12-02 11:31:32.000000000 +0200
@@ -54,7 +54,7 @@ unsigned long rom_length;
unsigned long memory_start;
unsigned long memory_end;
-char command_line[COMMAND_LINE_SIZE];
+char __initdata command_line[COMMAND_LINE_SIZE];
extern int _stext, _etext, _sdata, _edata, _sbss, _ebss, _end;
extern int _ramstart, _ramend;
@@ -154,8 +154,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, COMMAND_LINE_SIZE);
- saved_command_line[COMMAND_LINE_SIZE-1] = 0;
+ memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE);
+ boot_command_line[COMMAND_LINE_SIZE-1] = 0;
#ifdef DEBUG
if (strlen(*cmdline_p))
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 09/26] Dynamic kernel command-line - i386
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (7 preceding siblings ...)
2006-12-02 10:50 ` [PATCH 08/26] Dynamic kernel command-line - h8300 Alon Bar-Lev
@ 2006-12-02 10:51 ` Alon Bar-Lev
2006-12-02 10:51 ` [PATCH 10/26] Dynamic kernel command-line - ia64 Alon Bar-Lev
` (16 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:51 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/i386/kernel/head.S linux-2.6.19/arch/i386/kernel/head.S
--- linux-2.6.19.org/arch/i386/kernel/head.S 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/i386/kernel/head.S 2006-12-02 11:31:32.000000000 +0200
@@ -97,7 +97,7 @@ ENTRY(startup_32)
movzwl OLD_CL_OFFSET,%esi
addl $(OLD_CL_BASE_ADDR),%esi
2:
- movl $(saved_command_line - __PAGE_OFFSET),%edi
+ movl $(boot_command_line - __PAGE_OFFSET),%edi
movl $(COMMAND_LINE_SIZE/4),%ecx
rep
movsl
diff -urNp linux-2.6.19.org/arch/i386/kernel/setup.c linux-2.6.19/arch/i386/kernel/setup.c
--- linux-2.6.19.org/arch/i386/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/i386/kernel/setup.c 2006-12-02 11:31:32.000000000 +0200
@@ -145,7 +145,7 @@ unsigned long saved_videomode;
#define RAMDISK_PROMPT_FLAG 0x8000
#define RAMDISK_LOAD_FLAG 0x4000
-static char command_line[COMMAND_LINE_SIZE];
+static char __initdata command_line[COMMAND_LINE_SIZE];
unsigned char __initdata boot_params[PARAM_SIZE];
@@ -1405,7 +1405,7 @@ void __init setup_arch(char **cmdline_p)
print_memory_map("user");
}
- strlcpy(command_line, saved_command_line, COMMAND_LINE_SIZE);
+ strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
*cmdline_p = command_line;
max_low_pfn = setup_memory();
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 10/26] Dynamic kernel command-line - ia64
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (8 preceding siblings ...)
2006-12-02 10:51 ` [PATCH 09/26] Dynamic kernel command-line - i386 Alon Bar-Lev
@ 2006-12-02 10:51 ` Alon Bar-Lev
2006-12-02 10:52 ` [PATCH 11/26] Dynamic kernel command-line - m32r Alon Bar-Lev
` (15 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:51 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/ia64/kernel/efi.c linux-2.6.19/arch/ia64/kernel/efi.c
--- linux-2.6.19.org/arch/ia64/kernel/efi.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/ia64/kernel/efi.c 2006-12-02 11:31:32.000000000 +0200
@@ -412,11 +412,11 @@ efi_init (void)
efi_char16_t *c16;
u64 efi_desc_size;
char *cp, vendor[100] = "unknown";
- extern char saved_command_line[];
+ extern char __initdata boot_command_line[];
int i;
/* it's too early to be able to use the standard kernel command line support... */
- for (cp = saved_command_line; *cp; ) {
+ for (cp = boot_command_line; *cp; ) {
if (memcmp(cp, "mem=", 4) == 0) {
mem_limit = memparse(cp + 4, &cp);
} else if (memcmp(cp, "max_addr=", 9) == 0) {
diff -urNp linux-2.6.19.org/arch/ia64/kernel/sal.c linux-2.6.19/arch/ia64/kernel/sal.c
--- linux-2.6.19.org/arch/ia64/kernel/sal.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/ia64/kernel/sal.c 2006-12-02 11:31:32.000000000 +0200
@@ -194,9 +194,9 @@ static void __init
chk_nointroute_opt(void)
{
char *cp;
- extern char saved_command_line[];
+ extern char __initdata boot_command_line[];
- for (cp = saved_command_line; *cp; ) {
+ for (cp = boot_command_line; *cp; ) {
if (memcmp(cp, "nointroute", 10) == 0) {
no_int_routing = 1;
printk ("no_int_routing on\n");
diff -urNp linux-2.6.19.org/arch/ia64/kernel/setup.c linux-2.6.19/arch/ia64/kernel/setup.c
--- linux-2.6.19.org/arch/ia64/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/ia64/kernel/setup.c 2006-12-02 11:31:32.000000000 +0200
@@ -404,7 +404,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, COMMAND_LINE_SIZE);
+ strlcpy(boot_command_line, *cmdline_p, COMMAND_LINE_SIZE);
efi_init();
io_port_init();
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 11/26] Dynamic kernel command-line - m32r
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (9 preceding siblings ...)
2006-12-02 10:51 ` [PATCH 10/26] Dynamic kernel command-line - ia64 Alon Bar-Lev
@ 2006-12-02 10:52 ` Alon Bar-Lev
2006-12-02 10:52 ` [PATCH 12/26] Dynamic kernel command-line - m68k Alon Bar-Lev
` (14 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:52 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/m32r/kernel/setup.c linux-2.6.19/arch/m32r/kernel/setup.c
--- linux-2.6.19.org/arch/m32r/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/m32r/kernel/setup.c 2006-12-02 11:31:32.000000000 +0200
@@ -64,7 +64,7 @@ struct screen_info screen_info = {
extern int root_mountflags;
-static char command_line[COMMAND_LINE_SIZE];
+static char __initdata command_line[COMMAND_LINE_SIZE];
static struct resource data_resource = {
.name = "Kernel data",
@@ -95,8 +95,8 @@ static __inline__ void parse_mem_cmdline
int usermem = 0;
/* Save unparsed command line copy for /proc/cmdline */
- memcpy(saved_command_line, COMMAND_LINE, COMMAND_LINE_SIZE);
- saved_command_line[COMMAND_LINE_SIZE-1] = '\0';
+ memcpy(boot_command_line, COMMAND_LINE, COMMAND_LINE_SIZE);
+ boot_command_line[COMMAND_LINE_SIZE-1] = '\0';
memory_start = (unsigned long)CONFIG_MEMORY_START+PAGE_OFFSET;
memory_end = memory_start+(unsigned long)CONFIG_MEMORY_SIZE;
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 12/26] Dynamic kernel command-line - m68k
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (10 preceding siblings ...)
2006-12-02 10:52 ` [PATCH 11/26] Dynamic kernel command-line - m32r Alon Bar-Lev
@ 2006-12-02 10:52 ` Alon Bar-Lev
2006-12-02 10:53 ` [PATCH 13/26] Dynamic kernel command-line - m68knommu Alon Bar-Lev
` (13 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:52 UTC (permalink / raw)
To: linux-arch, linux-kernel
Rename saved_command_line into boot_command_line.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/m68k/kernel/setup.c linux-2.6.19/arch/m68k/kernel/setup.c
--- linux-2.6.19.org/arch/m68k/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/m68k/kernel/setup.c 2006-12-02 11:31:32.000000000 +0200
@@ -256,7 +256,7 @@ void __init setup_arch(char **cmdline_p)
init_mm.brk = (unsigned long) &_end;
*cmdline_p = m68k_command_line;
- memcpy(saved_command_line, *cmdline_p, CL_SIZE);
+ memcpy(boot_command_line, *cmdline_p, CL_SIZE);
/* Parse the command line for arch-specific options.
* For the m68k, this is currently only "debug=xxx" to enable printing
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 13/26] Dynamic kernel command-line - m68knommu
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (11 preceding siblings ...)
2006-12-02 10:52 ` [PATCH 12/26] Dynamic kernel command-line - m68k Alon Bar-Lev
@ 2006-12-02 10:53 ` Alon Bar-Lev
2006-12-02 10:53 ` [PATCH 14/26] Dynamic kernel command-line - mips Alon Bar-Lev
` (12 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:53 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/m68knommu/kernel/setup.c linux-2.6.19/arch/m68knommu/kernel/setup.c
--- linux-2.6.19.org/arch/m68knommu/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/m68knommu/kernel/setup.c 2006-12-02 11:31:32.000000000 +0200
@@ -47,7 +47,7 @@ unsigned long memory_end;
EXPORT_SYMBOL(memory_start);
EXPORT_SYMBOL(memory_end);
-char command_line[COMMAND_LINE_SIZE];
+char __initdata command_line[COMMAND_LINE_SIZE];
/* setup some dummy routines */
static void dummy_waitbut(void)
@@ -234,8 +234,8 @@ void setup_arch(char **cmdline_p)
/* Keep a copy of command line */
*cmdline_p = &command_line[0];
- memcpy(saved_command_line, command_line, COMMAND_LINE_SIZE);
- saved_command_line[COMMAND_LINE_SIZE-1] = 0;
+ memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE);
+ boot_command_line[COMMAND_LINE_SIZE-1] = 0;
#ifdef DEBUG
if (strlen(*cmdline_p))
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 14/26] Dynamic kernel command-line - mips
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (12 preceding siblings ...)
2006-12-02 10:53 ` [PATCH 13/26] Dynamic kernel command-line - m68knommu Alon Bar-Lev
@ 2006-12-02 10:53 ` Alon Bar-Lev
2006-12-02 10:53 ` [PATCH 15/26] Dynamic kernel command-line - parisc Alon Bar-Lev
` (11 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:53 UTC (permalink / raw)
To: linux-arch, linux-kernel
Rename saved_command_line into boot_command_line.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/mips/kernel/setup.c linux-2.6.19/arch/mips/kernel/setup.c
--- linux-2.6.19.org/arch/mips/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/mips/kernel/setup.c 2006-12-02 11:31:33.000000000 +0200
@@ -409,7 +409,7 @@ static void __init arch_mem_init(char **
print_memory_map();
strlcpy(command_line, arcs_cmdline, sizeof(command_line));
- strlcpy(saved_command_line, command_line, COMMAND_LINE_SIZE);
+ strlcpy(boot_command_line, command_line, COMMAND_LINE_SIZE);
*cmdline_p = command_line;
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 15/26] Dynamic kernel command-line - parisc
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (13 preceding siblings ...)
2006-12-02 10:53 ` [PATCH 14/26] Dynamic kernel command-line - mips Alon Bar-Lev
@ 2006-12-02 10:53 ` Alon Bar-Lev
2006-12-02 10:54 ` [PATCH 16/26] Dynamic kernel command-line - powerpc Alon Bar-Lev
` (10 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:53 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/parisc/kernel/setup.c linux-2.6.19/arch/parisc/kernel/setup.c
--- linux-2.6.19.org/arch/parisc/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/parisc/kernel/setup.c 2006-12-02 11:31:33.000000000 +0200
@@ -45,7 +45,7 @@
#include <asm/io.h>
#include <asm/setup.h>
-char command_line[COMMAND_LINE_SIZE] __read_mostly;
+char __initdata command_line[COMMAND_LINE_SIZE] __read_mostly;
/* Intended for ccio/sba/cpu statistics under /proc/bus/{runway|gsc} */
struct proc_dir_entry * proc_runway_root __read_mostly = NULL;
@@ -71,9 +71,9 @@ void __init setup_cmdline(char **cmdline
/* boot_args[0] is free-mem start, boot_args[1] is ptr to command line */
if (boot_args[0] < 64) {
/* called from hpux boot loader */
- saved_command_line[0] = '\0';
+ boot_command_line[0] = '\0';
} else {
- strcpy(saved_command_line, (char *)__va(boot_args[1]));
+ strcpy(boot_command_line, (char *)__va(boot_args[1]));
#ifdef CONFIG_BLK_DEV_INITRD
if (boot_args[2] != 0) /* did palo pass us a ramdisk? */
@@ -84,7 +84,7 @@ void __init setup_cmdline(char **cmdline
#endif
}
- strcpy(command_line, saved_command_line);
+ strcpy(command_line, boot_command_line);
*cmdline_p = command_line;
}
diff -urNp linux-2.6.19.org/arch/parisc/mm/init.c linux-2.6.19/arch/parisc/mm/init.c
--- linux-2.6.19.org/arch/parisc/mm/init.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/parisc/mm/init.c 2006-12-02 11:31:33.000000000 +0200
@@ -77,12 +77,12 @@ static void __init mem_limit_func(void)
{
char *cp, *end;
unsigned long limit;
- extern char saved_command_line[];
+ extern char __initdata boot_command_line[];
/* We need this before __setup() functions are called */
limit = MAX_MEM;
- for (cp = saved_command_line; *cp; ) {
+ for (cp = boot_command_line; *cp; ) {
if (memcmp(cp, "mem=", 4) == 0) {
cp += 4;
limit = memparse(cp, &end);
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 16/26] Dynamic kernel command-line - powerpc
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (14 preceding siblings ...)
2006-12-02 10:53 ` [PATCH 15/26] Dynamic kernel command-line - parisc Alon Bar-Lev
@ 2006-12-02 10:54 ` Alon Bar-Lev
2006-12-02 10:54 ` [PATCH 17/26] Dynamic kernel command-line - ppc Alon Bar-Lev
` (9 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:54 UTC (permalink / raw)
To: linux-arch, linux-kernel
Rename saved_command_line into boot_command_line.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/powerpc/kernel/legacy_serial.c linux-2.6.19/arch/powerpc/kernel/legacy_serial.c
--- linux-2.6.19.org/arch/powerpc/kernel/legacy_serial.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/powerpc/kernel/legacy_serial.c 2006-12-02 11:31:33.000000000 +0200
@@ -498,7 +498,7 @@ static int __init check_legacy_serial_co
DBG(" -> check_legacy_serial_console()\n");
/* The user has requested a console so this is already set up. */
- if (strstr(saved_command_line, "console=")) {
+ if (strstr(boot_command_line, "console=")) {
DBG(" console was specified !\n");
return -EBUSY;
}
diff -urNp linux-2.6.19.org/arch/powerpc/kernel/prom.c linux-2.6.19/arch/powerpc/kernel/prom.c
--- linux-2.6.19.org/arch/powerpc/kernel/prom.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/powerpc/kernel/prom.c 2006-12-02 11:31:33.000000000 +0200
@@ -894,7 +894,7 @@ void __init early_init_devtree(void *par
of_scan_flat_dt(early_init_dt_scan_memory, NULL);
/* Save command line for /proc/cmdline and then parse parameters */
- strlcpy(saved_command_line, cmd_line, COMMAND_LINE_SIZE);
+ strlcpy(boot_command_line, cmd_line, COMMAND_LINE_SIZE);
parse_early_param();
/* Reserve LMB regions used by kernel, initrd, dt, etc... */
diff -urNp linux-2.6.19.org/arch/powerpc/kernel/udbg.c linux-2.6.19/arch/powerpc/kernel/udbg.c
--- linux-2.6.19.org/arch/powerpc/kernel/udbg.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/powerpc/kernel/udbg.c 2006-12-02 11:31:33.000000000 +0200
@@ -146,7 +146,7 @@ void __init disable_early_printk(void)
{
if (!early_console_initialized)
return;
- if (strstr(saved_command_line, "udbg-immortal")) {
+ if (strstr(boot_command_line, "udbg-immortal")) {
printk(KERN_INFO "early console immortal !\n");
return;
}
diff -urNp linux-2.6.19.org/arch/powerpc/platforms/powermac/setup.c linux-2.6.19/arch/powerpc/platforms/powermac/setup.c
--- linux-2.6.19.org/arch/powerpc/platforms/powermac/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/powerpc/platforms/powermac/setup.c 2006-12-02 11:31:33.000000000 +0200
@@ -505,8 +505,8 @@ void note_bootable_part(dev_t dev, int p
if ((goodness <= current_root_goodness) &&
ROOT_DEV != DEFAULT_ROOT_DEVICE)
return;
- p = strstr(saved_command_line, "root=");
- if (p != NULL && (p == saved_command_line || p[-1] == ' '))
+ p = strstr(boot_command_line, "root=");
+ if (p != NULL && (p == boot_command_line || p[-1] == ' '))
return;
if (!found_boot) {
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 17/26] Dynamic kernel command-line - ppc
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (15 preceding siblings ...)
2006-12-02 10:54 ` [PATCH 16/26] Dynamic kernel command-line - powerpc Alon Bar-Lev
@ 2006-12-02 10:54 ` Alon Bar-Lev
2006-12-02 10:55 ` [PATCH 18/26] Dynamic kernel command-line - s390 Alon Bar-Lev
` (8 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:54 UTC (permalink / raw)
To: linux-arch, linux-kernel
Rename saved_command_line into boot_command_line.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/ppc/kernel/setup.c linux-2.6.19/arch/ppc/kernel/setup.c
--- linux-2.6.19.org/arch/ppc/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/ppc/kernel/setup.c 2006-12-02 11:31:33.000000000 +0200
@@ -543,7 +543,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, COMMAND_LINE_SIZE);
+ strlcpy(boot_command_line, cmd_line, COMMAND_LINE_SIZE);
*cmdline_p = cmd_line;
parse_early_param();
diff -urNp linux-2.6.19.org/arch/ppc/platforms/lopec.c linux-2.6.19/arch/ppc/platforms/lopec.c
--- linux-2.6.19.org/arch/ppc/platforms/lopec.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/ppc/platforms/lopec.c 2006-12-02 11:31:33.000000000 +0200
@@ -344,7 +344,7 @@ lopec_setup_arch(void)
if (bootargs != NULL) {
strcpy(cmd_line, bootargs);
/* again.. */
- strcpy(saved_command_line, cmd_line);
+ strcpy(boot_command_line, cmd_line);
}
}
#endif
diff -urNp linux-2.6.19.org/arch/ppc/platforms/pplus.c linux-2.6.19/arch/ppc/platforms/pplus.c
--- linux-2.6.19.org/arch/ppc/platforms/pplus.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/ppc/platforms/pplus.c 2006-12-02 11:31:33.000000000 +0200
@@ -592,7 +592,7 @@ static void __init pplus_setup_arch(void
if (bootargs != NULL) {
strcpy(cmd_line, bootargs);
/* again.. */
- strcpy(saved_command_line, cmd_line);
+ strcpy(boot_command_line, cmd_line);
}
}
#endif
diff -urNp linux-2.6.19.org/arch/ppc/platforms/prep_setup.c linux-2.6.19/arch/ppc/platforms/prep_setup.c
--- linux-2.6.19.org/arch/ppc/platforms/prep_setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/ppc/platforms/prep_setup.c 2006-12-02 11:31:33.000000000 +0200
@@ -634,7 +634,7 @@ static void __init prep_init_sound(void)
/*
* Find a way to push these informations to the cs4232 driver
* Give it out with printk, when not in cmd_line?
- * Append it to cmd_line and saved_command_line?
+ * Append it to cmd_line and boot_command_line?
* Format is cs4232=io,irq,dma,dma2
*/
}
@@ -897,7 +897,7 @@ prep_setup_arch(void)
if (bootargs != NULL) {
strcpy(cmd_line, bootargs);
/* again.. */
- strcpy(saved_command_line, cmd_line);
+ strcpy(boot_command_line, cmd_line);
}
}
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 18/26] Dynamic kernel command-line - s390
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (16 preceding siblings ...)
2006-12-02 10:54 ` [PATCH 17/26] Dynamic kernel command-line - ppc Alon Bar-Lev
@ 2006-12-02 10:55 ` Alon Bar-Lev
2006-12-02 10:55 ` [PATCH 19/26] Dynamic kernel command-line - sh Alon Bar-Lev
` (7 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:55 UTC (permalink / raw)
To: linux-arch, linux-kernel
Rename saved_command_line into boot_command_line.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/s390/kernel/setup.c linux-2.6.19/arch/s390/kernel/setup.c
--- linux-2.6.19.org/arch/s390/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/s390/kernel/setup.c 2006-12-02 11:31:33.000000000 +0200
@@ -633,7 +633,7 @@ setup_arch(char **cmdline_p)
#endif /* CONFIG_64BIT */
/* Save unparsed command line copy for /proc/cmdline */
- strlcpy(saved_command_line, COMMAND_LINE, COMMAND_LINE_SIZE);
+ strlcpy(boot_command_line, COMMAND_LINE, COMMAND_LINE_SIZE);
*cmdline_p = COMMAND_LINE;
*(*cmdline_p + COMMAND_LINE_SIZE - 1) = '\0';
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 19/26] Dynamic kernel command-line - sh
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (17 preceding siblings ...)
2006-12-02 10:55 ` [PATCH 18/26] Dynamic kernel command-line - s390 Alon Bar-Lev
@ 2006-12-02 10:55 ` Alon Bar-Lev
2006-12-02 10:55 ` [PATCH 20/26] Dynamic kernel command-line - sh64 Alon Bar-Lev
` (6 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:55 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
Acked-by: Paul Mundt <lethal@linux-sh.org>
---
diff -urNp linux-2.6.19.org/arch/sh/kernel/setup.c linux-2.6.19/arch/sh/kernel/setup.c
--- linux-2.6.19.org/arch/sh/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/sh/kernel/setup.c 2006-12-02 11:31:33.000000000 +0200
@@ -75,7 +75,7 @@ static struct sh_machine_vector* __init
#define RAMDISK_PROMPT_FLAG 0x8000
#define RAMDISK_LOAD_FLAG 0x4000
-static char command_line[COMMAND_LINE_SIZE] = { 0, };
+static char __initdata command_line[COMMAND_LINE_SIZE] = { 0, };
static struct resource code_resource = { .name = "Kernel code", };
static struct resource data_resource = { .name = "Kernel data", };
@@ -91,8 +91,8 @@ static inline void parse_cmdline (char *
int len = 0;
/* Save unparsed command line copy for /proc/cmdline */
- memcpy(saved_command_line, COMMAND_LINE, COMMAND_LINE_SIZE);
- saved_command_line[COMMAND_LINE_SIZE-1] = '\0';
+ memcpy(boot_command_line, COMMAND_LINE, COMMAND_LINE_SIZE);
+ boot_command_line[COMMAND_LINE_SIZE-1] = '\0';
memory_start = (unsigned long)PAGE_OFFSET+__MEMORY_START;
memory_end = memory_start + __MEMORY_SIZE;
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 20/26] Dynamic kernel command-line - sh64
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (18 preceding siblings ...)
2006-12-02 10:55 ` [PATCH 19/26] Dynamic kernel command-line - sh Alon Bar-Lev
@ 2006-12-02 10:55 ` Alon Bar-Lev
2006-12-02 10:55 ` [PATCH 21/26] Dynamic kernel command-line - sparc Alon Bar-Lev
` (5 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:55 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
Acked-by: Paul Mundt <lethal@linux-sh.org>
---
diff -urNp linux-2.6.19.org/arch/sh64/kernel/setup.c linux-2.6.19/arch/sh64/kernel/setup.c
--- linux-2.6.19.org/arch/sh64/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/sh64/kernel/setup.c 2006-12-02 11:31:33.000000000 +0200
@@ -83,7 +83,7 @@ extern int sh64_tlb_init(void);
#define RAMDISK_PROMPT_FLAG 0x8000
#define RAMDISK_LOAD_FLAG 0x4000
-static char command_line[COMMAND_LINE_SIZE] = { 0, };
+static char __initdata command_line[COMMAND_LINE_SIZE] = { 0, };
unsigned long long memory_start = CONFIG_MEMORY_START;
unsigned long long memory_end = CONFIG_MEMORY_START + (CONFIG_MEMORY_SIZE_IN_MB * 1024 * 1024);
@@ -95,8 +95,8 @@ static inline void parse_mem_cmdline (ch
int len = 0;
/* Save unparsed command line copy for /proc/cmdline */
- memcpy(saved_command_line, COMMAND_LINE, COMMAND_LINE_SIZE);
- saved_command_line[COMMAND_LINE_SIZE-1] = '\0';
+ memcpy(boot_command_line, COMMAND_LINE, COMMAND_LINE_SIZE);
+ boot_command_line[COMMAND_LINE_SIZE-1] = '\0';
for (;;) {
/*
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 21/26] Dynamic kernel command-line - sparc
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (19 preceding siblings ...)
2006-12-02 10:55 ` [PATCH 20/26] Dynamic kernel command-line - sh64 Alon Bar-Lev
@ 2006-12-02 10:55 ` Alon Bar-Lev
2006-12-02 10:56 ` [PATCH 22/26] Dynamic kernel command-line - sparc64 Alon Bar-Lev
` (4 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:55 UTC (permalink / raw)
To: linux-arch, linux-kernel
Rename saved_command_line into boot_command_line.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/sparc/kernel/setup.c linux-2.6.19/arch/sparc/kernel/setup.c
--- linux-2.6.19.org/arch/sparc/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/sparc/kernel/setup.c 2006-12-02 11:31:33.000000000 +0200
@@ -246,7 +246,7 @@ void __init setup_arch(char **cmdline_p)
/* Initialize PROM console and command line. */
*cmdline_p = prom_getbootargs();
- strcpy(saved_command_line, *cmdline_p);
+ strcpy(boot_command_line, *cmdline_p);
/* Set sparc_cpu_model */
sparc_cpu_model = sun_unknown;
diff -urNp linux-2.6.19.org/arch/sparc/kernel/sparc_ksyms.c linux-2.6.19/arch/sparc/kernel/sparc_ksyms.c
--- linux-2.6.19.org/arch/sparc/kernel/sparc_ksyms.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/sparc/kernel/sparc_ksyms.c 2006-12-02 11:31:33.000000000 +0200
@@ -237,7 +237,7 @@ EXPORT_SYMBOL(prom_getproplen);
EXPORT_SYMBOL(prom_getproperty);
EXPORT_SYMBOL(prom_node_has_property);
EXPORT_SYMBOL(prom_setprop);
-EXPORT_SYMBOL(saved_command_line);
+EXPORT_SYMBOL(boot_command_line);
EXPORT_SYMBOL(prom_apply_obio_ranges);
EXPORT_SYMBOL(prom_feval);
EXPORT_SYMBOL(prom_getbool);
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 22/26] Dynamic kernel command-line - sparc64
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (20 preceding siblings ...)
2006-12-02 10:55 ` [PATCH 21/26] Dynamic kernel command-line - sparc Alon Bar-Lev
@ 2006-12-02 10:56 ` Alon Bar-Lev
2006-12-02 10:56 ` [PATCH 23/26] Dynamic kernel command-line - um Alon Bar-Lev
` (3 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:56 UTC (permalink / raw)
To: linux-arch, linux-kernel
Rename saved_command_line into boot_command_line.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/sparc64/kernel/setup.c linux-2.6.19/arch/sparc64/kernel/setup.c
--- linux-2.6.19.org/arch/sparc64/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/sparc64/kernel/setup.c 2006-12-02 11:31:33.000000000 +0200
@@ -315,7 +315,7 @@ void __init setup_arch(char **cmdline_p)
{
/* Initialize PROM console and command line. */
*cmdline_p = prom_getbootargs();
- strcpy(saved_command_line, *cmdline_p);
+ strcpy(boot_command_line, *cmdline_p);
if (tlb_type == hypervisor)
printk("ARCH: SUN4V\n");
diff -urNp linux-2.6.19.org/arch/sparc64/kernel/sparc64_ksyms.c linux-2.6.19/arch/sparc64/kernel/sparc64_ksyms.c
--- linux-2.6.19.org/arch/sparc64/kernel/sparc64_ksyms.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/sparc64/kernel/sparc64_ksyms.c 2006-12-02 11:31:33.000000000 +0200
@@ -253,7 +253,7 @@ EXPORT_SYMBOL(prom_getproplen);
EXPORT_SYMBOL(prom_getproperty);
EXPORT_SYMBOL(prom_node_has_property);
EXPORT_SYMBOL(prom_setprop);
-EXPORT_SYMBOL(saved_command_line);
+EXPORT_SYMBOL(boot_command_line);
EXPORT_SYMBOL(prom_finddevice);
EXPORT_SYMBOL(prom_feval);
EXPORT_SYMBOL(prom_getbool);
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 23/26] Dynamic kernel command-line - um
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (21 preceding siblings ...)
2006-12-02 10:56 ` [PATCH 22/26] Dynamic kernel command-line - sparc64 Alon Bar-Lev
@ 2006-12-02 10:56 ` Alon Bar-Lev
2006-12-02 10:56 ` [PATCH 24/26] Dynamic kernel command-line - v850 Alon Bar-Lev
` (2 subsequent siblings)
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:56 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/um/include/user_util.h linux-2.6.19/arch/um/include/user_util.h
--- linux-2.6.19.org/arch/um/include/user_util.h 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/um/include/user_util.h 2006-12-02 11:31:33.000000000 +0200
@@ -38,7 +38,7 @@ extern unsigned long long highmem;
extern char host_info[];
-extern char saved_command_line[];
+extern char __initdata boot_command_line[];
extern unsigned long _stext, _etext, _sdata, _edata, __bss_start, _end;
extern unsigned long _unprotected_end;
diff -urNp linux-2.6.19.org/arch/um/kernel/um_arch.c linux-2.6.19/arch/um/kernel/um_arch.c
--- linux-2.6.19.org/arch/um/kernel/um_arch.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/um/kernel/um_arch.c 2006-12-02 11:31:33.000000000 +0200
@@ -482,7 +482,7 @@ void __init setup_arch(char **cmdline_p)
atomic_notifier_chain_register(&panic_notifier_list,
&panic_exit_notifier);
paging_init();
- strlcpy(saved_command_line, command_line, COMMAND_LINE_SIZE);
+ strlcpy(boot_command_line, command_line, COMMAND_LINE_SIZE);
*cmdline_p = command_line;
setup_hostinfo();
}
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 24/26] Dynamic kernel command-line - v850
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (22 preceding siblings ...)
2006-12-02 10:56 ` [PATCH 23/26] Dynamic kernel command-line - um Alon Bar-Lev
@ 2006-12-02 10:56 ` Alon Bar-Lev
2006-12-02 10:57 ` [PATCH 25/26] Dynamic kernel command-line - x86_64 Alon Bar-Lev
2006-12-02 10:58 ` [PATCH 26/26] Dynamic kernel command-line - xtensa Alon Bar-Lev
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:56 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/v850/kernel/setup.c linux-2.6.19/arch/v850/kernel/setup.c
--- linux-2.6.19.org/arch/v850/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/v850/kernel/setup.c 2006-12-02 11:31:33.000000000 +0200
@@ -42,7 +42,7 @@ extern char _root_fs_image_start __attri
extern char _root_fs_image_end __attribute__ ((__weak__));
-char command_line[COMMAND_LINE_SIZE];
+char __initdata command_line[COMMAND_LINE_SIZE];
/* Memory not used by the kernel. */
static unsigned long total_ram_pages;
@@ -64,8 +64,8 @@ void __init setup_arch (char **cmdline)
{
/* Keep a copy of command line */
*cmdline = command_line;
- memcpy (saved_command_line, command_line, COMMAND_LINE_SIZE);
- saved_command_line[COMMAND_LINE_SIZE - 1] = '\0';
+ memcpy (boot_command_line, command_line, COMMAND_LINE_SIZE);
+ boot_command_line[COMMAND_LINE_SIZE - 1] = '\0';
console_verbose ();
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 25/26] Dynamic kernel command-line - x86_64
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (23 preceding siblings ...)
2006-12-02 10:56 ` [PATCH 24/26] Dynamic kernel command-line - v850 Alon Bar-Lev
@ 2006-12-02 10:57 ` Alon Bar-Lev
2006-12-02 10:58 ` [PATCH 26/26] Dynamic kernel command-line - xtensa Alon Bar-Lev
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:57 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/include/asm-x86_64/bootsetup.h linux-2.6.19/include/asm-x86_64/bootsetup.h
--- linux-2.6.19.org/include/asm-x86_64/bootsetup.h 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/include/asm-x86_64/bootsetup.h 2006-12-02 11:31:33.000000000 +0200
@@ -31,7 +31,7 @@ extern char x86_boot_params[BOOT_PARAM_S
#define EDD_MBR_SIG_NR (*(unsigned char *) (PARAM+EDD_MBR_SIG_NR_BUF))
#define EDD_MBR_SIGNATURE ((unsigned int *) (PARAM+EDD_MBR_SIG_BUF))
#define EDD_BUF ((struct edd_info *) (PARAM+EDDBUF))
-#define COMMAND_LINE saved_command_line
+#define COMMAND_LINE boot_command_line
#define RAMDISK_IMAGE_START_MASK 0x07FF
#define RAMDISK_PROMPT_FLAG 0x8000
diff -urNp linux-2.6.19.org/arch/x86_64/kernel/head64.c linux-2.6.19/arch/x86_64/kernel/head64.c
--- linux-2.6.19.org/arch/x86_64/kernel/head64.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/x86_64/kernel/head64.c 2006-12-02 11:31:33.000000000 +0200
@@ -34,7 +34,7 @@ static void __init clear_bss(void)
#define OLD_CL_BASE_ADDR 0x90000
#define OLD_CL_OFFSET 0x90022
-extern char saved_command_line[];
+extern char __initdata boot_command_line[];
static void __init copy_bootdata(char *real_mode_data)
{
@@ -50,7 +50,7 @@ static void __init copy_bootdata(char *r
new_data = OLD_CL_BASE_ADDR + * (u16 *) OLD_CL_OFFSET;
}
command_line = (char *) ((u64)(new_data));
- memcpy(saved_command_line, command_line, COMMAND_LINE_SIZE);
+ memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE);
}
void __init x86_64_start_kernel(char * real_mode_data)
diff -urNp linux-2.6.19.org/arch/x86_64/kernel/setup.c linux-2.6.19/arch/x86_64/kernel/setup.c
--- linux-2.6.19.org/arch/x86_64/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/x86_64/kernel/setup.c 2006-12-02 11:31:33.000000000 +0200
@@ -100,7 +100,7 @@ EXPORT_SYMBOL_GPL(edid_info);
extern int root_mountflags;
-char command_line[COMMAND_LINE_SIZE];
+char __initdata command_line[COMMAND_LINE_SIZE];
struct resource standard_io_resources[] = {
{ .name = "dma1", .start = 0x00, .end = 0x1f,
@@ -343,7 +343,7 @@ static void discover_ebda(void)
void __init setup_arch(char **cmdline_p)
{
- printk(KERN_INFO "Command line: %s\n", saved_command_line);
+ printk(KERN_INFO "Command line: %s\n", boot_command_line);
ROOT_DEV = old_decode_dev(ORIG_ROOT_DEV);
screen_info = SCREEN_INFO;
@@ -373,7 +373,7 @@ void __init setup_arch(char **cmdline_p)
early_identify_cpu(&boot_cpu_data);
- strlcpy(command_line, saved_command_line, COMMAND_LINE_SIZE);
+ strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
*cmdline_p = command_line;
parse_early_param();
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 26/26] Dynamic kernel command-line - xtensa
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
` (24 preceding siblings ...)
2006-12-02 10:57 ` [PATCH 25/26] Dynamic kernel command-line - x86_64 Alon Bar-Lev
@ 2006-12-02 10:58 ` Alon Bar-Lev
25 siblings, 0 replies; 33+ messages in thread
From: Alon Bar-Lev @ 2006-12-02 10:58 UTC (permalink / raw)
To: linux-arch, linux-kernel
1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
diff -urNp linux-2.6.19.org/arch/xtensa/kernel/setup.c linux-2.6.19/arch/xtensa/kernel/setup.c
--- linux-2.6.19.org/arch/xtensa/kernel/setup.c 2006-11-29 23:57:37.000000000 +0200
+++ linux-2.6.19/arch/xtensa/kernel/setup.c 2006-12-02 11:31:33.000000000 +0200
@@ -80,7 +80,7 @@ extern unsigned long loops_per_jiffy;
/* Command line specified as configuration option. */
-static char command_line[COMMAND_LINE_SIZE];
+static char __initdata command_line[COMMAND_LINE_SIZE];
#ifdef CONFIG_CMDLINE_BOOL
static char default_command_line[COMMAND_LINE_SIZE] __initdata = CONFIG_CMDLINE;
@@ -255,8 +255,8 @@ void __init setup_arch(char **cmdline_p)
extern int mem_reserve(unsigned long, unsigned long, int);
extern void bootmem_init(void);
- memcpy(saved_command_line, command_line, COMMAND_LINE_SIZE);
- saved_command_line[COMMAND_LINE_SIZE-1] = '\0';
+ memcpy(boot_command_line, command_line, COMMAND_LINE_SIZE);
+ boot_command_line[COMMAND_LINE_SIZE-1] = '\0';
*cmdline_p = command_line;
/* Reserve some memory regions */
^ permalink raw reply [flat|nested] 33+ messages in thread
* [patch 01/26] Dynamic kernel command-line - common
2007-01-18 12:58 [patch 00/26] Dynamic kernel command-line Bernhard Walle
@ 2007-01-18 12:58 ` Bernhard Walle
0 siblings, 0 replies; 33+ messages in thread
From: Bernhard Walle @ 2007-01-18 12:58 UTC (permalink / raw)
To: linux-kernel, linux-arch; +Cc: Alon Bar-Lev
[-- Attachment #1: dynamic-kernel-command-line-common.diff --]
[-- Type: text/plain, Size: 4166 bytes --]
1. Rename saved_command_line into boot_command_line, mark
as init disposable.
2. Add dynamic allocated saved_command_line.
3. Add dynamic allocated static_command_line.
4. During startup copy:
boot_command_line into saved_command_line.
arch command_line into static_command_line.
5. Parse static_command_line and not
arch command_line, so arch command_line may
be freed.
Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
---
include/linux/init.h | 5 +++--
init/main.c | 29 ++++++++++++++++++++++++-----
2 files changed, 27 insertions(+), 7 deletions(-)
Index: linux-2.6.20-rc4-mm1/include/linux/init.h
===================================================================
--- linux-2.6.20-rc4-mm1.orig/include/linux/init.h
+++ linux-2.6.20-rc4-mm1/include/linux/init.h
@@ -67,7 +67,8 @@ 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[];
+extern char __initdata boot_command_line[];
+extern char *saved_command_line;
extern unsigned int reset_devices;
/* used by init/main.c */
@@ -164,7 +165,7 @@ struct obs_kernel_param {
#define early_param(str, fn) \
__setup_param(str, fn, fn, 1)
-/* Relies on saved_command_line being set */
+/* Relies on boot_command_line being set */
void __init parse_early_param(void);
#endif /* __ASSEMBLY__ */
Index: linux-2.6.20-rc4-mm1/init/main.c
===================================================================
--- linux-2.6.20-rc4-mm1.orig/init/main.c
+++ linux-2.6.20-rc4-mm1/init/main.c
@@ -122,8 +122,12 @@ extern void time_init(void);
void (*late_time_init)(void);
extern void softirq_init(void);
-/* Untouched command line (eg. for /proc) saved by arch-specific code. */
-char saved_command_line[COMMAND_LINE_SIZE];
+/* Untouched command line saved by arch-specific code. */
+char __initdata boot_command_line[COMMAND_LINE_SIZE];
+/* Untouched saved command line (eg. for /proc) */
+char *saved_command_line;
+/* Command line for parameter parsing */
+static char *static_command_line;
static char *execute_command;
static char *ramdisk_execute_command;
@@ -406,6 +410,20 @@ static void __init smp_init(void)
#endif
/*
+ * We need to store the untouched command line for future reference.
+ * We also need to store the touched command line since the parameter
+ * parsing is performed in place, and we should allow a component to
+ * store reference of name/value for future reference.
+ */
+static void __init setup_command_line(char *command_line)
+{
+ saved_command_line = alloc_bootmem(strlen (boot_command_line)+1);
+ static_command_line = alloc_bootmem(strlen (command_line)+1);
+ strcpy (saved_command_line, boot_command_line);
+ strcpy (static_command_line, command_line);
+}
+
+/*
* We need to finalize in a non-__init function or else race conditions
* between the root thread and the init thread may cause start_kernel to
* be reaped by free_initmem before the root thread has proceeded to
@@ -459,7 +477,7 @@ void __init parse_early_param(void)
return;
/* All fall through to do_early_param. */
- strlcpy(tmp_cmdline, saved_command_line, COMMAND_LINE_SIZE);
+ strlcpy(tmp_cmdline, boot_command_line, COMMAND_LINE_SIZE);
parse_args("early options", tmp_cmdline, NULL, 0, do_early_param);
done = 1;
}
@@ -509,6 +527,7 @@ asmlinkage void __init start_kernel(void
printk(KERN_NOTICE);
printk(linux_banner);
setup_arch(&command_line);
+ setup_command_line(command_line);
unwind_setup();
setup_per_cpu_areas();
smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
@@ -526,9 +545,9 @@ asmlinkage void __init start_kernel(void
preempt_disable();
build_all_zonelists();
page_alloc_init();
- printk(KERN_NOTICE "Kernel command line: %s\n", saved_command_line);
+ printk(KERN_NOTICE "Kernel command line: %s\n", boot_command_line);
parse_early_param();
- parse_args("Booting kernel", command_line, __start___param,
+ parse_args("Booting kernel", static_command_line, __start___param,
__stop___param - __start___param,
&unknown_bootoption);
if (!irqs_disabled()) {
--
^ permalink raw reply [flat|nested] 33+ messages in thread
end of thread, other threads:[~2007-01-18 13:04 UTC | newest]
Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-02 10:47 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
2006-12-02 10:48 ` [PATCH 01/26] Dynamic kernel command-line - common Alon Bar-Lev
2006-12-02 10:48 ` [PATCH 02/26] Dynamic kernel command-line - alpha Alon Bar-Lev
2006-12-02 10:49 ` [PATCH 03/26] Dynamic kernel command-line - arm Alon Bar-Lev
2006-12-02 10:49 ` [PATCH 04/26] Dynamic kernel command-line - arm26 Alon Bar-Lev
2006-12-02 10:49 ` [PATCH 05/26] Dynamic kernel command-line - avr32 Alon Bar-Lev
2006-12-02 10:50 ` [PATCH 06/26] Dynamic kernel command-line - cris Alon Bar-Lev
2006-12-02 10:50 ` [PATCH 07/26] Dynamic kernel command-line - frv Alon Bar-Lev
2006-12-02 10:50 ` [PATCH 08/26] Dynamic kernel command-line - h8300 Alon Bar-Lev
2006-12-02 10:51 ` [PATCH 09/26] Dynamic kernel command-line - i386 Alon Bar-Lev
2006-12-02 10:51 ` [PATCH 10/26] Dynamic kernel command-line - ia64 Alon Bar-Lev
2006-12-02 10:52 ` [PATCH 11/26] Dynamic kernel command-line - m32r Alon Bar-Lev
2006-12-02 10:52 ` [PATCH 12/26] Dynamic kernel command-line - m68k Alon Bar-Lev
2006-12-02 10:53 ` [PATCH 13/26] Dynamic kernel command-line - m68knommu Alon Bar-Lev
2006-12-02 10:53 ` [PATCH 14/26] Dynamic kernel command-line - mips Alon Bar-Lev
2006-12-02 10:53 ` [PATCH 15/26] Dynamic kernel command-line - parisc Alon Bar-Lev
2006-12-02 10:54 ` [PATCH 16/26] Dynamic kernel command-line - powerpc Alon Bar-Lev
2006-12-02 10:54 ` [PATCH 17/26] Dynamic kernel command-line - ppc Alon Bar-Lev
2006-12-02 10:55 ` [PATCH 18/26] Dynamic kernel command-line - s390 Alon Bar-Lev
2006-12-02 10:55 ` [PATCH 19/26] Dynamic kernel command-line - sh Alon Bar-Lev
2006-12-02 10:55 ` [PATCH 20/26] Dynamic kernel command-line - sh64 Alon Bar-Lev
2006-12-02 10:55 ` [PATCH 21/26] Dynamic kernel command-line - sparc Alon Bar-Lev
2006-12-02 10:56 ` [PATCH 22/26] Dynamic kernel command-line - sparc64 Alon Bar-Lev
2006-12-02 10:56 ` [PATCH 23/26] Dynamic kernel command-line - um Alon Bar-Lev
2006-12-02 10:56 ` [PATCH 24/26] Dynamic kernel command-line - v850 Alon Bar-Lev
2006-12-02 10:57 ` [PATCH 25/26] Dynamic kernel command-line - x86_64 Alon Bar-Lev
2006-12-02 10:58 ` [PATCH 26/26] Dynamic kernel command-line - xtensa Alon Bar-Lev
-- strict thread matches above, loose matches on Subject: below --
2007-01-18 12:58 [patch 00/26] Dynamic kernel command-line Bernhard Walle
2007-01-18 12:58 ` [patch 01/26] Dynamic kernel command-line - common Bernhard Walle
2006-09-03 22:15 [PATCH 00/26] Dynamic kernel command-line - Resend please ignore last Alon Bar-Lev
2006-09-03 22:16 ` [PATCH 01/26] Dynamic kernel command-line - common Alon Bar-Lev
2006-09-03 21:50 [PATCH 00/26] Dynamic kernel command-line Alon Bar-Lev
2006-09-03 21:52 ` [PATCH 01/26] Dynamic kernel command-line - common Alon Bar-Lev
2006-09-03 22:10 ` Matthew Wilcox
2006-09-03 22:12 ` Alon Bar-Lev
2006-09-05 23:52 ` Bill Davidsen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox