2006-09-03 22:17:35

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 00/26] Dynamic kernel command-line - Resend please ignore last


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.

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.18-rc5-mm1 and is divided to
target each architecture. I could not check this in any
architecture so please forgive me if I got it wrong.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

--
VGER BF report: H 0


2006-09-03 22:28:31

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 02/26] Dynamic kernel command-line - alpha


1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/alpha/kernel/setup.c linux-2.6.18-rc5-mm1/arch/alpha/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/alpha/kernel/setup.c 2006-09-03 18:56:47.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/alpha/kernel/setup.c 2006-09-03 20:57:36.000000000 +0300
@@ -120,7 +120,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
@@ -541,7 +541,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;

/*
@@ -583,7 +583,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) {

--
VGER BF report: H 0

2006-09-03 22:28:40

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 03/26] Dynamic kernel command-line - arm


1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/arm/kernel/setup.c linux-2.6.18-rc5-mm1/arch/arm/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/arm/kernel/setup.c 2006-09-03 18:56:47.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/arm/kernel/setup.c 2006-09-03 20:58:23.000000000 +0300
@@ -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' } };
@@ -803,8 +803,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);

--
VGER BF report: H 0

2006-09-03 22:28:22

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 01/26] Dynamic kernel command-line - common


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 <[email protected]>

---

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

2006-09-03 22:29:09

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 05/26] Dynamic kernel command-line - avr32


1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/avr32/kernel/setup.c linux-2.6.18-rc5-mm1/arch/avr32/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/avr32/kernel/setup.c 2006-09-03 18:56:48.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/avr32/kernel/setup.c 2006-09-03 20:58:45.000000000 +0300
@@ -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
@@ -94,7 +94,7 @@ static unsigned long __initdata fbmem_si

static void __init parse_cmdline_early(char **cmdline_p)
{
- char *to = command_line, *from = saved_command_line;
+ char *to = command_line, *from = boot_command_line;
int len = 0;
char c = ' ';

@@ -226,7 +226,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);

--
VGER BF report: H 0

2006-09-03 22:29:09

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 04/26] Dynamic kernel command-line - arm26


1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/arm26/kernel/setup.c linux-2.6.18-rc5-mm1/arch/arm26/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/arm26/kernel/setup.c 2006-09-03 18:56:47.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/arm26/kernel/setup.c 2006-09-03 20:58:31.000000000 +0300
@@ -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);

--
VGER BF report: H 0

2006-09-03 22:29:53

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 09/26] Dynamic kernel command-line - i386


1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/i386/kernel/head.S linux-2.6.18-rc5-mm1/arch/i386/kernel/head.S
--- linux-2.6.18-rc5-mm1.org/arch/i386/kernel/head.S 2006-09-03 18:56:48.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/i386/kernel/head.S 2006-09-03 19:47:58.000000000 +0300
@@ -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.18-rc5-mm1.org/arch/i386/kernel/setup.c linux-2.6.18-rc5-mm1/arch/i386/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/i386/kernel/setup.c 2006-09-03 18:56:48.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/i386/kernel/setup.c 2006-09-03 20:54:39.000000000 +0300
@@ -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];

@@ -1396,7 +1396,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();

--
VGER BF report: H 0

2006-09-03 22:29:49

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 10/26] Dynamic kernel command-line - ia64


Rename saved_command_line into boot_command_line.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/ia64/kernel/efi.c linux-2.6.18-rc5-mm1/arch/ia64/kernel/efi.c
--- linux-2.6.18-rc5-mm1.org/arch/ia64/kernel/efi.c 2006-09-03 18:56:48.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/ia64/kernel/efi.c 2006-09-03 23:52:15.000000000 +0300
@@ -413,11 +413,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.18-rc5-mm1.org/arch/ia64/kernel/sal.c linux-2.6.18-rc5-mm1/arch/ia64/kernel/sal.c
--- linux-2.6.18-rc5-mm1.org/arch/ia64/kernel/sal.c 2006-09-03 18:55:08.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/ia64/kernel/sal.c 2006-09-03 23:42:12.000000000 +0300
@@ -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.18-rc5-mm1.org/arch/ia64/kernel/setup.c linux-2.6.18-rc5-mm1/arch/ia64/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/ia64/kernel/setup.c 2006-09-03 18:56:48.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/ia64/kernel/setup.c 2006-09-03 19:47:58.000000000 +0300
@@ -260,7 +260,7 @@ reserve_memory (void)
* after a kernel panic.
*/
{
- char *from = strstr(saved_command_line, "crashkernel=");
+ char *from = strstr(boot_command_line, "crashkernel=");
if (from) {
unsigned long size, base;
size = memparse(from + 12, &from);
@@ -433,7 +433,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();
@@ -514,7 +514,7 @@ setup_arch (char **cmdline_p)

#ifdef CONFIG_CRASH_DUMP
{
- char *from = strstr(saved_command_line, "elfcorehdr=");
+ char *from = strstr(boot_command_line, "elfcorehdr=");

if (from)
elfcorehdr_addr = memparse(from+11, &from);

--
VGER BF report: H 0

2006-09-03 22:30:38

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 15/26] Dynamic kernel command-line - parisc


1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/parisc/kernel/setup.c linux-2.6.18-rc5-mm1/arch/parisc/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/parisc/kernel/setup.c 2006-09-03 18:55:13.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/parisc/kernel/setup.c 2006-09-03 21:01:13.000000000 +0300
@@ -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.18-rc5-mm1.org/arch/parisc/mm/init.c linux-2.6.18-rc5-mm1/arch/parisc/mm/init.c
--- linux-2.6.18-rc5-mm1.org/arch/parisc/mm/init.c 2006-09-03 18:56:50.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/parisc/mm/init.c 2006-09-03 23:52:54.000000000 +0300
@@ -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);

--
VGER BF report: H 0

2006-09-03 22:31:15

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 16/26] Dynamic kernel command-line - powerpc


Rename saved_command_line into boot_command_line.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/powerpc/kernel/legacy_serial.c linux-2.6.18-rc5-mm1/arch/powerpc/kernel/legacy_serial.c
--- linux-2.6.18-rc5-mm1.org/arch/powerpc/kernel/legacy_serial.c 2006-09-03 18:56:50.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/powerpc/kernel/legacy_serial.c 2006-09-03 19:47:58.000000000 +0300
@@ -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.18-rc5-mm1.org/arch/powerpc/kernel/prom.c linux-2.6.18-rc5-mm1/arch/powerpc/kernel/prom.c
--- linux-2.6.18-rc5-mm1.org/arch/powerpc/kernel/prom.c 2006-09-03 18:56:50.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/powerpc/kernel/prom.c 2006-09-03 19:47:58.000000000 +0300
@@ -909,7 +909,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.18-rc5-mm1.org/arch/powerpc/kernel/udbg.c linux-2.6.18-rc5-mm1/arch/powerpc/kernel/udbg.c
--- linux-2.6.18-rc5-mm1.org/arch/powerpc/kernel/udbg.c 2006-09-03 18:55:13.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/powerpc/kernel/udbg.c 2006-09-03 19:47:58.000000000 +0300
@@ -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.18-rc5-mm1.org/arch/powerpc/platforms/powermac/setup.c linux-2.6.18-rc5-mm1/arch/powerpc/platforms/powermac/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/powerpc/platforms/powermac/setup.c 2006-09-03 18:56:51.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/powerpc/platforms/powermac/setup.c 2006-09-03 19:47:58.000000000 +0300
@@ -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) {

--
VGER BF report: H 0

2006-09-03 22:30:38

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 11/26] Dynamic kernel command-line - m32r


1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/m32r/kernel/setup.c linux-2.6.18-rc5-mm1/arch/m32r/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/m32r/kernel/setup.c 2006-09-03 18:55:09.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/m32r/kernel/setup.c 2006-09-03 21:00:37.000000000 +0300
@@ -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;

--
VGER BF report: H 0

2006-09-03 22:31:28

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 18/26] Dynamic kernel command-line - s390


Rename saved_command_line into boot_command_line.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/s390/kernel/setup.c linux-2.6.18-rc5-mm1/arch/s390/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/s390/kernel/setup.c 2006-09-03 18:56:51.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/s390/kernel/setup.c 2006-09-03 19:47:58.000000000 +0300
@@ -626,7 +626,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';

--
VGER BF report: H 0

2006-09-03 22:31:28

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 20/26] Dynamic kernel command-line - sh64


1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/sh64/kernel/setup.c linux-2.6.18-rc5-mm1/arch/sh64/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/sh64/kernel/setup.c 2006-09-03 18:55:18.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/sh64/kernel/setup.c 2006-09-03 21:02:25.000000000 +0300
@@ -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 (;;) {
/*

--
VGER BF report: H 0

2006-09-03 22:32:12

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 23/26] Dynamic kernel command-line - um


1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/um/include/user_util.h linux-2.6.18-rc5-mm1/arch/um/include/user_util.h
--- linux-2.6.18-rc5-mm1.org/arch/um/include/user_util.h 2006-06-18 04:49:35.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/um/include/user_util.h 2006-09-03 23:47:03.000000000 +0300
@@ -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.18-rc5-mm1.org/arch/um/kernel/um_arch.c linux-2.6.18-rc5-mm1/arch/um/kernel/um_arch.c
--- linux-2.6.18-rc5-mm1.org/arch/um/kernel/um_arch.c 2006-09-03 18:56:51.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/um/kernel/um_arch.c 2006-09-03 19:47:59.000000000 +0300
@@ -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();
}

--
VGER BF report: H 0

2006-09-03 22:32:12

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 24/26] Dynamic kernel command-line - v850


1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/v850/kernel/setup.c linux-2.6.18-rc5-mm1/arch/v850/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/v850/kernel/setup.c 2006-09-03 18:55:19.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/v850/kernel/setup.c 2006-09-03 21:02:53.000000000 +0300
@@ -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 ();


--
VGER BF report: H 0

2006-09-03 22:32:27

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 26/26] Dynamic kernel command-line - xtensa


1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/xtensa/kernel/setup.c linux-2.6.18-rc5-mm1/arch/xtensa/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/xtensa/kernel/setup.c 2006-09-03 18:55:20.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/xtensa/kernel/setup.c 2006-09-03 21:03:10.000000000 +0300
@@ -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 */

--
VGER BF report: H 0

2006-09-03 22:32:27

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 25/26] Dynamic kernel command-line - x86_64


1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/include/asm-x86_64/bootsetup.h linux-2.6.18-rc5-mm1/include/asm-x86_64/bootsetup.h
--- linux-2.6.18-rc5-mm1.org/include/asm-x86_64/bootsetup.h 2006-06-18 04:49:35.000000000 +0300
+++ linux-2.6.18-rc5-mm1/include/asm-x86_64/bootsetup.h 2006-09-03 19:47:59.000000000 +0300
@@ -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.18-rc5-mm1.org/arch/x86_64/kernel/head64.c linux-2.6.18-rc5-mm1/arch/x86_64/kernel/head64.c
--- linux-2.6.18-rc5-mm1.org/arch/x86_64/kernel/head64.c 2006-09-03 18:56:53.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/x86_64/kernel/head64.c 2006-09-03 23:47:39.000000000 +0300
@@ -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.18-rc5-mm1.org/arch/x86_64/kernel/setup.c linux-2.6.18-rc5-mm1/arch/x86_64/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/x86_64/kernel/setup.c 2006-09-03 18:56:53.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/x86_64/kernel/setup.c 2006-09-03 20:55:20.000000000 +0300
@@ -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,
@@ -376,7 +376,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();

--
VGER BF report: H 0

2006-09-03 22:31:28

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 19/26] Dynamic kernel command-line - sh


1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/sh/kernel/setup.c linux-2.6.18-rc5-mm1/arch/sh/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/sh/kernel/setup.c 2006-09-03 18:56:51.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/sh/kernel/setup.c 2006-09-03 21:02:18.000000000 +0300
@@ -88,7 +88,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, };

struct resource standard_io_resources[] = {
{ "dma1", 0x00, 0x1f },
@@ -125,8 +125,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;

--
VGER BF report: H 0

2006-09-03 22:31:16

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 13/26] Dynamic kernel command-line - m68knommu


1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/m68knommu/kernel/setup.c linux-2.6.18-rc5-mm1/arch/m68knommu/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/m68knommu/kernel/setup.c 2006-09-03 18:55:10.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/m68knommu/kernel/setup.c 2006-09-03 21:00:57.000000000 +0300
@@ -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))

--
VGER BF report: H 0

2006-09-03 22:35:00

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 21/26] Dynamic kernel command-line - sparc


Rename saved_command_line into boot_command_line.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/sparc/kernel/setup.c linux-2.6.18-rc5-mm1/arch/sparc/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/sparc/kernel/setup.c 2006-09-03 18:55:18.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/sparc/kernel/setup.c 2006-09-03 19:47:59.000000000 +0300
@@ -258,7 +258,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.18-rc5-mm1.org/arch/sparc/kernel/sparc_ksyms.c linux-2.6.18-rc5-mm1/arch/sparc/kernel/sparc_ksyms.c
--- linux-2.6.18-rc5-mm1.org/arch/sparc/kernel/sparc_ksyms.c 2006-09-03 18:55:18.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/sparc/kernel/sparc_ksyms.c 2006-09-03 19:47:59.000000000 +0300
@@ -235,7 +235,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);

--
VGER BF report: H 0

2006-09-03 22:30:40

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 08/26] Dynamic kernel command-line - h8300


1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/h8300/kernel/setup.c linux-2.6.18-rc5-mm1/arch/h8300/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/h8300/kernel/setup.c 2006-09-03 18:55:06.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/h8300/kernel/setup.c 2006-09-03 20:59:41.000000000 +0300
@@ -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))

--
VGER BF report: H 0

2006-09-03 22:35:01

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 22/26] Dynamic kernel command-line - sparc64


Rename saved_command_line into boot_command_line.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/sparc64/kernel/setup.c linux-2.6.18-rc5-mm1/arch/sparc64/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/sparc64/kernel/setup.c 2006-09-03 18:55:19.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/sparc64/kernel/setup.c 2006-09-03 19:47:59.000000000 +0300
@@ -327,7 +327,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.18-rc5-mm1.org/arch/sparc64/kernel/sparc64_ksyms.c linux-2.6.18-rc5-mm1/arch/sparc64/kernel/sparc64_ksyms.c
--- linux-2.6.18-rc5-mm1.org/arch/sparc64/kernel/sparc64_ksyms.c 2006-09-03 18:55:19.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/sparc64/kernel/sparc64_ksyms.c 2006-09-03 19:47:59.000000000 +0300
@@ -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);

--
VGER BF report: H 0

2006-09-03 22:35:04

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 14/26] Dynamic kernel command-line - mips


Rename saved_command_line into boot_command_line.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/mips/kernel/setup.c linux-2.6.18-rc5-mm1/arch/mips/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/mips/kernel/setup.c 2006-09-03 18:55:11.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/mips/kernel/setup.c 2006-09-03 19:47:58.000000000 +0300
@@ -145,7 +145,7 @@ static void __init print_memory_map(void

static inline void parse_cmdline_early(void)
{
- char c = ' ', *to = command_line, *from = saved_command_line;
+ char c = ' ', *to = command_line, *from = boot_command_line;
unsigned long start_at, mem_size;
int len = 0;
int usermem = 0;
@@ -473,7 +473,7 @@ static void __init arch_mem_init(char **
plat_mem_setup();

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;


--
VGER BF report: H 0

2006-09-03 22:36:47

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 06/26] Dynamic kernel command-line - cris


1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/cris/kernel/setup.c linux-2.6.18-rc5-mm1/arch/cris/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/cris/kernel/setup.c 2006-09-03 18:56:48.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/cris/kernel/setup.c 2006-09-03 20:58:59.000000000 +0300
@@ -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();

--
VGER BF report: H 0

2006-09-03 22:35:58

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 17/26] Dynamic kernel command-line - ppc


Rename saved_command_line into boot_command_line.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/ppc/kernel/setup.c linux-2.6.18-rc5-mm1/arch/ppc/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/ppc/kernel/setup.c 2006-09-03 18:55:16.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/ppc/kernel/setup.c 2006-09-03 19:47:58.000000000 +0300
@@ -538,7 +538,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.18-rc5-mm1.org/arch/ppc/platforms/lopec.c linux-2.6.18-rc5-mm1/arch/ppc/platforms/lopec.c
--- linux-2.6.18-rc5-mm1.org/arch/ppc/platforms/lopec.c 2006-09-03 18:55:16.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/ppc/platforms/lopec.c 2006-09-03 19:47:58.000000000 +0300
@@ -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.18-rc5-mm1.org/arch/ppc/platforms/pplus.c linux-2.6.18-rc5-mm1/arch/ppc/platforms/pplus.c
--- linux-2.6.18-rc5-mm1.org/arch/ppc/platforms/pplus.c 2006-09-03 18:55:16.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/ppc/platforms/pplus.c 2006-09-03 19:47:58.000000000 +0300
@@ -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.18-rc5-mm1.org/arch/ppc/platforms/prep_setup.c linux-2.6.18-rc5-mm1/arch/ppc/platforms/prep_setup.c
--- linux-2.6.18-rc5-mm1.org/arch/ppc/platforms/prep_setup.c 2006-09-03 18:55:16.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/ppc/platforms/prep_setup.c 2006-09-03 19:47:58.000000000 +0300
@@ -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);
}
}


--
VGER BF report: H 0

2006-09-03 22:37:31

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 07/26] Dynamic kernel command-line - frv


1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/frv/kernel/setup.c linux-2.6.18-rc5-mm1/arch/frv/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/frv/kernel/setup.c 2006-09-03 18:55:06.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/frv/kernel/setup.c 2006-09-03 20:59:28.000000000 +0300
@@ -112,7 +112,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
@@ -764,7 +764,7 @@ void __init setup_arch(char **cmdline_p)
printk("uClinux FR-V port done by Red Hat Inc <[email protected]>\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);
@@ -805,7 +805,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);


--
VGER BF report: H 0

2006-09-03 22:36:48

by Alon Bar-Lev

[permalink] [raw]
Subject: [PATCH 12/26] Dynamic kernel command-line - m68k


Rename saved_command_line into boot_command_line.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/m68k/kernel/setup.c linux-2.6.18-rc5-mm1/arch/m68k/kernel/setup.c
--- linux-2.6.18-rc5-mm1.org/arch/m68k/kernel/setup.c 2006-09-03 18:55:09.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/m68k/kernel/setup.c 2006-09-03 19:47:58.000000000 +0300
@@ -241,7 +241,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

--
VGER BF report: H 0

2006-09-05 17:20:47

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH 23/26] Dynamic kernel command-line - um

On Mon, 4 Sep 2006 01:23:42 +0300 Alon Bar-Lev wrote:

>
> 1. Rename saved_command_line into boot_command_line.
> 2. Set command_line as __initdata.
>
> Signed-off-by: Alon Bar-Lev <[email protected]>
>
> ---
>
> diff -urNp linux-2.6.18-rc5-mm1.org/arch/um/include/user_util.h linux-2.6.18-rc5-mm1/arch/um/include/user_util.h
> --- linux-2.6.18-rc5-mm1.org/arch/um/include/user_util.h 2006-06-18 04:49:35.000000000 +0300
> +++ linux-2.6.18-rc5-mm1/arch/um/include/user_util.h 2006-09-03 23:47:03.000000000 +0300
> @@ -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.18-rc5-mm1.org/arch/um/kernel/um_arch.c linux-2.6.18-rc5-mm1/arch/um/kernel/um_arch.c
> --- linux-2.6.18-rc5-mm1.org/arch/um/kernel/um_arch.c 2006-09-03 18:56:51.000000000 +0300
> +++ linux-2.6.18-rc5-mm1/arch/um/kernel/um_arch.c 2006-09-03 19:47:59.000000000 +0300
> @@ -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();
> }

Please use tabs instead of spaces for indentation.

---
~Randy

2006-09-05 17:37:45

by Alon Bar-Lev

[permalink] [raw]
Subject: Re: [PATCH 23/26] Dynamic kernel command-line - um

On Tuesday 05 September 2006 20:24, Randy.Dunlap wrote:
> Please use tabs instead of spaces for indentation.

It was in the original file, didn't notice...

Here it is again...

1. Rename saved_command_line into boot_command_line.
2. Set command_line as __initdata.

Signed-off-by: Alon Bar-Lev <[email protected]>

---

diff -urNp linux-2.6.18-rc5-mm1.org/arch/um/include/user_util.h linux-2.6.18-rc5-mm1/arch/um/include/user_util.h
--- linux-2.6.18-rc5-mm1.org/arch/um/include/user_util.h 2006-06-18 04:49:35.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/um/include/user_util.h 2006-09-03 23:47:03.000000000 +0300
@@ -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.18-rc5-mm1.org/arch/um/kernel/um_arch.c linux-2.6.18-rc5-mm1/arch/um/kernel/um_arch.c
--- linux-2.6.18-rc5-mm1.org/arch/um/kernel/um_arch.c 2006-09-03 18:56:51.000000000 +0300
+++ linux-2.6.18-rc5-mm1/arch/um/kernel/um_arch.c 2006-09-03 19:47:59.000000000 +0300
@@ -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();
}

2006-09-07 07:30:49

by Haavard Skinnemoen

[permalink] [raw]
Subject: Re: [PATCH 05/26] Dynamic kernel command-line - avr32

(trimming Cc list)

On Mon, 4 Sep 2006 01:18:04 +0300
Alon Bar-Lev <[email protected]> wrote:

>
> 1. Rename saved_command_line into boot_command_line.
> 2. Set command_line as __initdata.

Thanks. Seems to work fine with my setup.

I should probably start using that parse_early_param() stuff, though.
I'll update this patch if I do.

Now, do I add a signed-off-by line here, or an acked-by?

Haavard

> Signed-off-by: Alon Bar-Lev <[email protected]>
>
> ---
>
> diff -urNp linux-2.6.18-rc5-mm1.org/arch/avr32/kernel/setup.c
> linux-2.6.18-rc5-mm1/arch/avr32/kernel/setup.c ---
> linux-2.6.18-rc5-mm1.org/arch/avr32/kernel/setup.c 2006-09-03
> 18:56:48.000000000 +0300 +++
> linux-2.6.18-rc5-mm1/arch/avr32/kernel/setup.c 2006-09-03
> 20:58:45.000000000 +0300 @@ -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
> @@ -94,7 +94,7 @@ static unsigned long __initdata fbmem_si
>
> static void __init parse_cmdline_early(char **cmdline_p)
> {
> - char *to = command_line, *from = saved_command_line;
> + char *to = command_line, *from = boot_command_line;
> int len = 0;
> char c = ' ';
>
> @@ -226,7 +226,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);

2006-09-07 16:21:19

by Alon Bar-Lev

[permalink] [raw]
Subject: Re: [PATCH 05/26] Dynamic kernel command-line - avr32

On 9/7/06, Haavard Skinnemoen <[email protected]> wrote:
> (trimming Cc list)
>
> On Mon, 4 Sep 2006 01:18:04 +0300
> Alon Bar-Lev <[email protected]> wrote:
>
> >
> > 1. Rename saved_command_line into boot_command_line.
> > 2. Set command_line as __initdata.
>
> Thanks. Seems to work fine with my setup.
>
> I should probably start using that parse_early_param() stuff, though.
> I'll update this patch if I do.
>
> Now, do I add a signed-off-by line here, or an acked-by?
>
> Haavard


Thanks for checking the patch!!!

Best Regards,
Alon Bar-Lev.

2006-09-13 08:21:25

by Haavard Skinnemoen

[permalink] [raw]
Subject: Re: [PATCH 05/26] Dynamic kernel command-line - avr32

On Thu, 7 Sep 2006 19:21:17 +0300
"Alon Bar-Lev" <[email protected]> wrote:

> On 9/7/06, Haavard Skinnemoen <[email protected]> wrote:
>
> > On Mon, 4 Sep 2006 01:18:04 +0300
> > Alon Bar-Lev <[email protected]> wrote:
> >
> > >
> > > 1. Rename saved_command_line into boot_command_line.
> > > 2. Set command_line as __initdata.
> >
> > I should probably start using that parse_early_param() stuff,
> > though. I'll update this patch if I do.

The patch "AVR32: Use parse_early_param" does that. Here's an updated
version of your patch that goes on top of that one.

---
arch/avr32/kernel/setup.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Index: linux-2.6.18-rc5-mm1/arch/avr32/kernel/setup.c
===================================================================
--- linux-2.6.18-rc5-mm1.orig/arch/avr32/kernel/setup.c 2006-09-07 10:05:07.000000000 +0200
+++ linux-2.6.18-rc5-mm1/arch/avr32/kernel/setup.c 2006-09-07 10:30:00.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);
@@ -317,7 +317,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();

2006-09-13 08:30:34

by Alon Bar-Lev

[permalink] [raw]
Subject: Re: [PATCH 05/26] Dynamic kernel command-line - avr32

Thanks!
Can you please sign-off the patch?

On 9/13/06, Haavard Skinnemoen <[email protected]> wrote:
> On Thu, 7 Sep 2006 19:21:17 +0300
> "Alon Bar-Lev" <[email protected]> wrote:
>
> > On 9/7/06, Haavard Skinnemoen <[email protected]> wrote:
> >
> > > On Mon, 4 Sep 2006 01:18:04 +0300
> > > Alon Bar-Lev <[email protected]> wrote:
> > >
> > > >
> > > > 1. Rename saved_command_line into boot_command_line.
> > > > 2. Set command_line as __initdata.
> > >
> > > I should probably start using that parse_early_param() stuff,
> > > though. I'll update this patch if I do.
>
> The patch "AVR32: Use parse_early_param" does that. Here's an updated
> version of your patch that goes on top of that one.
>
> ---
> arch/avr32/kernel/setup.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> Index: linux-2.6.18-rc5-mm1/arch/avr32/kernel/setup.c
> ===================================================================
> --- linux-2.6.18-rc5-mm1.orig/arch/avr32/kernel/setup.c 2006-09-07 10:05:07.000000000 +0200
> +++ linux-2.6.18-rc5-mm1/arch/avr32/kernel/setup.c 2006-09-07 10:30:00.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);
> @@ -317,7 +317,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();
>
>

2006-09-13 09:22:19

by Haavard Skinnemoen

[permalink] [raw]
Subject: Re: [PATCH 05/26] Dynamic kernel command-line - avr32 (resend with signoff)

On Thu, 7 Sep 2006 19:21:17 +0300
"Alon Bar-Lev" <[email protected]> wrote:

> On 9/7/06, Haavard Skinnemoen <[email protected]> wrote:
>
> > On Mon, 4 Sep 2006 01:18:04 +0300
> > Alon Bar-Lev <[email protected]> wrote:
> >
> > >
> > > 1. Rename saved_command_line into boot_command_line.
> > > 2. Set command_line as __initdata.
> >
> > I should probably start using that parse_early_param() stuff,
> > though. I'll update this patch if I do.

The patch "AVR32: Use parse_early_param" does that. Here's an updated
version of your patch that goes on top of that one.

Signed-off-by: Haavard Skinnemoen <[email protected]>
---
arch/avr32/kernel/setup.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Index: linux-2.6.18-rc5-mm1/arch/avr32/kernel/setup.c
===================================================================
--- linux-2.6.18-rc5-mm1.orig/arch/avr32/kernel/setup.c 2006-09-07 10:05:07.000000000 +0200
+++ linux-2.6.18-rc5-mm1/arch/avr32/kernel/setup.c 2006-09-07 10:30:00.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);
@@ -317,7 +317,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();

2006-10-12 08:16:33

by Paul Mundt

[permalink] [raw]
Subject: Re: [PATCH 19/26] Dynamic kernel command-line - sh

On Wed, Oct 11, 2006 at 09:16:55PM +0200, Alon Bar-Lev wrote:
>
> 1. Rename saved_command_line into boot_command_line.
> 2. Set command_line as __initdata.
>
> Signed-off-by: Alon Bar-Lev <[email protected]>
>
The sh bits look fine, though I'm fairly impartial to this change. It
doesn't seem like this is going to be needed in very many places..

In the future, you may also wish to CC linux-arch if you want the
attention of architecture maintainers.

Acked-by: Paul Mundt <[email protected]>

On Wed, Oct 11, 2006 at 09:17:10PM +0200, Alon Bar-Lev wrote:
>
> 1. Rename saved_command_line into boot_command_line.
> 2. Set command_line as __initdata.
>
> Signed-off-by: Alon Bar-Lev <[email protected]>
>
Likewise for sh64.

Acked-by: Paul Mundt <[email protected]>

2006-10-12 08:31:03

by Alon Bar-Lev

[permalink] [raw]
Subject: Re: [PATCH 19/26] Dynamic kernel command-line - sh

On 10/12/06, Paul Mundt <[email protected]> wrote:
> The sh bits look fine, though I'm fairly impartial to this change. It
> doesn't seem like this is going to be needed in very many places..

Thank you for your quick response!
But I failed to push i386 command-line size to more than 256 bytes...
You are right, it is required only for memory extreme devices...

Options:
1. Add COMMAND_LINE_SIZE to kernel config - was rejected because
kernel has already too much parameters, this was the initial patch
more than a year ago.
2. Just increase COMMAND_LINE_SIZE of i386, x86_64 - was rejected
because of it affecting low memory devices.
3. Convert the command-line into dynamically allocated buffers - this try.

> In the future, you may also wish to CC linux-arch if you want the
> attention of architecture maintainers.

Thank you, I was not aware of this.
I hope there will be no take 3 :)

Best Regards,
Alon Bar-Lev.