From: Werner Almesberger The kernel currently allows boot parameters to be quoted (so that they can contain spaces) in the following way: param="value" Unfortunately, when init/main.c:unknown_bootoption reconstructs the parameter line for environment variables, it does not expect that there could be two \0s between the parameter name and its value. My patch corrects this by shifting the parameter name. Signed-off-by: Werner Almesberger Signed-off-by: Andrew Morton --- 25-akpm/init/main.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletion(-) diff -puN init/main.c~boot-parameters-quoting-of-environment-variables init/main.c --- 25/init/main.c~boot-parameters-quoting-of-environment-variables 2004-10-02 23:54:24.282119040 -0700 +++ 25-akpm/init/main.c 2004-10-02 23:54:24.285118584 -0700 @@ -287,8 +287,14 @@ __setup("quiet", quiet_kernel); static int __init unknown_bootoption(char *param, char *val) { /* Change NUL term back to "=", to make "param" the whole string. */ - if (val) + if (val) { val[-1] = '='; + /* If the value was quoted, shift the parameter name. */ + if (!val[-2]) { + memmove(param+1,param,strlen(param)); + param++; + } + } /* Handle obsolete-style parameters */ if (obsolete_checksetup(param)) _