Actual result:
[ 0.000000] Linux version 2.6.37.6 (peter@penguin) (gcc version 4.6.3 20120201 (prerelease) (Linaro GCC 4.6-2012.02) ) #12 Tue Mar 27 23:09:00 CEST 2012
[ 0.000000] bootconsole [early0] enabled
[ 0.000000] CPU revision is: 00018448 (MIPS 4KEc)
[ 0.000000] TI AR7 (TNETD7300), ID: 0x0005, Revision: 0x26
[ 0.000000] Determined physical RAM map:
[ 0.000000] memory: 02000000 @ 14000000 (usable)
[ 0.000000] end of print_memory_map
[ 0.000000] After print_memory_map
[ 0.000000] boot_command_line 9428cca8 builtin_cmdline ffffff21 COMMAND_LINE_SIZE 4096
Expected:
[ 0.000000] boot_command_line 9428cca8 builtin_cmdline 9428ff20 COMMAND_LINE_SIZE 4096
Modified source from http://lxr.linux.no/#linux+v2.6.37.6/arch/mips/kernel/setup.c#L463
pr_info("Determined physical RAM map:\n");
print_memory_map();
pr_info("After print_memory_map\n");
#ifdef CONFIG_CMDLINE_BOOL
pr_info("boot_command_line %p builtin_cmdline %p COMMAND_LINE_SIZE %zu\n", boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
pr_info("builtin_cmdline[0] = %c\n", builtin_cmdline[0]);
#ifdef CONFIG_CMDLINE_OVERRIDE
strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
#else
if (builtin_cmdline[0]) {
pr_info("before first strlcat\n");
strlcat(arcs_cmdline, " ", COMMAND_LINE_SIZE);
pr_info("Before second strlcat\n");
strlcat(arcs_cmdline, builtin_cmdline, COMMAND_LINE_SIZE);
}
pr_info("Before strlcpy\n");
strlcpy(boot_command_line, arcs_cmdline, COMMAND_LINE_SIZE);
#endif
pr_info("%s", boot_command_line);
#else
strlcpy(boot_command_line, arcs_cmdline, COMMAND_LINE_SIZE);
#endif
pr_info("Before boot_command_line strlcpy\n");
strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
Assembly
; pr_info("Determined physical RAM map:\n");
9427515c: 3c049423 lui a0,0x9423
94275160: 0d0860f5 jal 0x942183d4
94275164: 2484021c addiu a0,a0,540
; print_memory_map();
94275168: 0d09d3ad jal 0x94274eb4 ; print_memory_map
9427516c: 00000000 nop
; pr_info("After print_memory_map\n");
94275170: 3c049423 lui a0,0x9423
94275174: 0d0860f5 jal 0x942183d4 ; printk
94275178: 24840240 addiu a0,a0,576 ; "<6>After print_memory_map\n"
; pr_info("boot_command_line %p builtin_cmdline %p COMMAND_LINE_SIZE %zu\n", boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
9427517c: 3c049423 lui a0,0x9423
94275180: 2484025c addiu a0,a0,604 ; "<6>boot_command_line %p builtin_cmdline %p COMMAND_LINE_SIZE %zu\n"
94275184: 2625cca8 addiu a1,s1,-13144 ; 0x9428cca8 allocated memory for use
94275188: 2606ff20 addiu a2,s0,-224 ; 0x9428ff20 "console=ttyS0,115200 console=ttyS1,115200"
9427518c: 0d0860f5 jal 0x942183d4 ; printk
94275190: 24071000 li a3,4096 ; 4096