Messages in this thread Patch in this message |  | | | From | Andi Kleen <> | | Subject | [PATCH for review] [89/145] x86_64: Allow early_param and identical __setup to exist | | Date | Thu, 10 Aug 2006 21:36:46 +0200 (CEST) |
| |
r
From: Rusty Russell <rusty@rustcorp.com.au> We currently assume that boot parameters which are handled by early_param() will not overlap boot parameters handled by __setup: if they do, behaviour is dependent on link order, usually meaning __setup will not get called.
ACPI wants to use early_param("pci"), and pci uses __setup("pci="), so we modify the core to let them coexist: "pci=noacpi" will now get passed to both.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Andi Kleen <ak@suse.de>
--- init/main.c | 12 ++++++++---- 1 files changed, 8 insertions(+), 4 deletions(-) Index: linux/init/main.c =================================================================== --- linux.orig/init/main.c +++ linux/init/main.c @@ -162,16 +162,19 @@ extern struct obs_kernel_param __setup_s static int __init obsolete_checksetup(char *line) { struct obs_kernel_param *p; + int had_early_param = 0; p = __setup_start; do { int n = strlen(p->str); if (!strncmp(line, p->str, n)) { if (p->early) { - /* Already done in parse_early_param? (Needs - * exact match on param part) */ + /* Already done in parse_early_param? + * (Needs exact match on param part). + * Keep iterating, as we can have early + * params and __setups of same names 8( */ if (line[n] == '\0' || line[n] == '=') - return 1; + had_early_param = 1; } else if (!p->setup_func) { printk(KERN_WARNING "Parameter %s is obsolete," " ignored\n", p->str); @@ -181,7 +184,8 @@ static int __init obsolete_checksetup(ch } p++; } while (p < __setup_end); - return 0; + + return had_early_param; } /* - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |