Distribution: Fedora core 2 Hardware Environment: Gateway laptop Solo 9550 Software Environment: kernel 2.6.7 + swsusp2 patch + acpi patch Problem Description: I was trying to use the acpi_os_name="Microsoft Windows NT" kernel parameter but it was not being used. I tracked down the problem to an interaction between the parser in kernel/params.c which first parses the options. It skips double quotes and removes the = sign. But since acpi_os_name= is an 'obsolete' style parameter eventually unknown_bootoption (in init/main.c) gets called with param pointing to acpi_os_name (no =) and val points to the M of Microsoft... Before calling obsolete_checksetup(param) which should do the job, it needs to undo what the previous parser did but it is not taking account of the presence of the quote (so the = is not added at the correct place and the option is not dectected: "acpi_os_name" != "acpi_os_name=") Here is a patch that fices the problem for me: --- init/main.c.orig 2004-08-19 04:42:43.714880960 -0400 +++ init/main.c 2004-08-19 04:43:17.455751568 -0400 @@ -265,8 +265,10 @@ static int __init unknown_bootoption(char *param, char *val) { /* Change NUL term back to "=", to make "param" the whole string. */ - if (val) - val[-1] = '='; + if (val) { + if (val[-1] == '"') val[-2] = '='; + else val[-1] = '='; + } /* Handle obsolete-style parameters */ if (obsolete_checksetup(param))
Created attachment 3528 [details] patch as attachment
Patch looks fine. I've also tested it ok. Len, please apply this. thanks, -zhen
shipped in 2.6.9 - closing.