Hi, Robert P. J. Day wrote:
--- a/init/main.c +++ b/init/main.c @@ -482,7 +482,7 @@ static int __init do_early_param(char *param, char *val) void __init parse_early_param(void) { static __initdata int done = 0; - static __initdata char tmp_cmdline[COMMAND_LINE_SIZE]; + char tmp_cmdline[COMMAND_LINE_SIZE];
As I've said in an answer to an e-mail from you on the kernelnewbies mailing list, this change is going to allocate 2k on the stack, which is quite big compared to the overall stack size. If you use 8k stacks, it may still work, but with 4k stacks, it eats half of the stack, leaving only 2k for the rest of the code to execute, which may not be enough. I think that why this buffer is static.
Sincerly, Thomas -- PETAZZONI Thomas - thomas.petazzoni@xxxxxxxx http://thomas.enix.org - Jabber: thomas.petazzoni@xxxxxxxxx KOS: http://kos.enix.org/ - SOS: http://sos.enix.org Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E 1624 F653 CB30 98D3 F7A7 - To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html