diff options
Diffstat (limited to 'init')
-rw-r--r-- | init/main.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/init/main.c b/init/main.c index 8651a720a092..913e48d658ee 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -162,16 +162,19 @@ extern struct obs_kernel_param __setup_start[], __setup_end[]; | |||
162 | static int __init obsolete_checksetup(char *line) | 162 | static int __init obsolete_checksetup(char *line) |
163 | { | 163 | { |
164 | struct obs_kernel_param *p; | 164 | struct obs_kernel_param *p; |
165 | int had_early_param = 0; | ||
165 | 166 | ||
166 | p = __setup_start; | 167 | p = __setup_start; |
167 | do { | 168 | do { |
168 | int n = strlen(p->str); | 169 | int n = strlen(p->str); |
169 | if (!strncmp(line, p->str, n)) { | 170 | if (!strncmp(line, p->str, n)) { |
170 | if (p->early) { | 171 | if (p->early) { |
171 | /* Already done in parse_early_param? (Needs | 172 | /* Already done in parse_early_param? |
172 | * exact match on param part) */ | 173 | * (Needs exact match on param part). |
174 | * Keep iterating, as we can have early | ||
175 | * params and __setups of same names 8( */ | ||
173 | if (line[n] == '\0' || line[n] == '=') | 176 | if (line[n] == '\0' || line[n] == '=') |
174 | return 1; | 177 | had_early_param = 1; |
175 | } else if (!p->setup_func) { | 178 | } else if (!p->setup_func) { |
176 | printk(KERN_WARNING "Parameter %s is obsolete," | 179 | printk(KERN_WARNING "Parameter %s is obsolete," |
177 | " ignored\n", p->str); | 180 | " ignored\n", p->str); |
@@ -181,7 +184,8 @@ static int __init obsolete_checksetup(char *line) | |||
181 | } | 184 | } |
182 | p++; | 185 | p++; |
183 | } while (p < __setup_end); | 186 | } while (p < __setup_end); |
184 | return 0; | 187 | |
188 | return had_early_param; | ||
185 | } | 189 | } |
186 | 190 | ||
187 | /* | 191 | /* |
@@ -464,6 +468,7 @@ asmlinkage void __init start_kernel(void) | |||
464 | * Need to run as early as possible, to initialize the | 468 | * Need to run as early as possible, to initialize the |
465 | * lockdep hash: | 469 | * lockdep hash: |
466 | */ | 470 | */ |
471 | unwind_init(); | ||
467 | lockdep_init(); | 472 | lockdep_init(); |
468 | 473 | ||
469 | local_irq_disable(); | 474 | local_irq_disable(); |
@@ -502,7 +507,6 @@ asmlinkage void __init start_kernel(void) | |||
502 | __stop___param - __start___param, | 507 | __stop___param - __start___param, |
503 | &unknown_bootoption); | 508 | &unknown_bootoption); |
504 | sort_main_extable(); | 509 | sort_main_extable(); |
505 | unwind_init(); | ||
506 | trap_init(); | 510 | trap_init(); |
507 | rcu_init(); | 511 | rcu_init(); |
508 | init_IRQ(); | 512 | init_IRQ(); |