diff options
author | Andi Kleen <ak@suse.de> | 2006-09-26 04:52:32 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-09-26 04:52:32 -0400 |
commit | 2c8c0e6b8d7700a990da8d24eff767f9ca223b96 (patch) | |
tree | b5477ee2558efff235c483d1619ce892db479d18 /arch/x86_64/kernel/apic.c | |
parent | 1a3f239ddf9208f2e52d36fef1c1c4518cbbbabe (diff) |
[PATCH] Convert x86-64 to early param
Instead of hackish manual parsing
Requires earlier i386 patchkit, but also fixes i386 early_printk again.
I removed some obsolete really early parameters which didn't do anything useful.
Also made a few parameters that needed it early (mostly oops printing setup)
Also removed one panic check that wasn't visible without
early console anyways (the early console is now initialized after that
panic)
This cleans up a lot of code.
Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch/x86_64/kernel/apic.c')
-rw-r--r-- | arch/x86_64/kernel/apic.c | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/arch/x86_64/kernel/apic.c b/arch/x86_64/kernel/apic.c index 496cd1bd2ae5..660602c51f51 100644 --- a/arch/x86_64/kernel/apic.c +++ b/arch/x86_64/kernel/apic.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #include <asm/idle.h> | 36 | #include <asm/idle.h> |
37 | #include <asm/proto.h> | 37 | #include <asm/proto.h> |
38 | #include <asm/timex.h> | 38 | #include <asm/timex.h> |
39 | #include <asm/apic.h> | ||
39 | 40 | ||
40 | int apic_verbosity; | 41 | int apic_verbosity; |
41 | int apic_runs_main_timer; | 42 | int apic_runs_main_timer; |
@@ -546,18 +547,24 @@ static void apic_pm_activate(void) { } | |||
546 | 547 | ||
547 | static int __init apic_set_verbosity(char *str) | 548 | static int __init apic_set_verbosity(char *str) |
548 | { | 549 | { |
550 | if (str == NULL) { | ||
551 | skip_ioapic_setup = 0; | ||
552 | ioapic_force = 1; | ||
553 | return 0; | ||
554 | } | ||
549 | if (strcmp("debug", str) == 0) | 555 | if (strcmp("debug", str) == 0) |
550 | apic_verbosity = APIC_DEBUG; | 556 | apic_verbosity = APIC_DEBUG; |
551 | else if (strcmp("verbose", str) == 0) | 557 | else if (strcmp("verbose", str) == 0) |
552 | apic_verbosity = APIC_VERBOSE; | 558 | apic_verbosity = APIC_VERBOSE; |
553 | else | 559 | else { |
554 | printk(KERN_WARNING "APIC Verbosity level %s not recognised" | 560 | printk(KERN_WARNING "APIC Verbosity level %s not recognised" |
555 | " use apic=verbose or apic=debug", str); | 561 | " use apic=verbose or apic=debug\n", str); |
562 | return -EINVAL; | ||
563 | } | ||
556 | 564 | ||
557 | return 1; | 565 | return 0; |
558 | } | 566 | } |
559 | 567 | early_param("apic", apic_set_verbosity); | |
560 | __setup("apic=", apic_set_verbosity); | ||
561 | 568 | ||
562 | /* | 569 | /* |
563 | * Detect and enable local APICs on non-SMP boards. | 570 | * Detect and enable local APICs on non-SMP boards. |
@@ -1078,14 +1085,17 @@ int __init APIC_init_uniprocessor (void) | |||
1078 | static __init int setup_disableapic(char *str) | 1085 | static __init int setup_disableapic(char *str) |
1079 | { | 1086 | { |
1080 | disable_apic = 1; | 1087 | disable_apic = 1; |
1081 | return 1; | 1088 | clear_bit(X86_FEATURE_APIC, boot_cpu_data.x86_capability); |
1082 | } | 1089 | return 0; |
1090 | } | ||
1091 | early_param("disableapic", setup_disableapic); | ||
1083 | 1092 | ||
1093 | /* same as disableapic, for compatibility */ | ||
1084 | static __init int setup_nolapic(char *str) | 1094 | static __init int setup_nolapic(char *str) |
1085 | { | 1095 | { |
1086 | disable_apic = 1; | 1096 | return setup_disableapic(str); |
1087 | return 1; | ||
1088 | } | 1097 | } |
1098 | early_param("nolapic", setup_nolapic); | ||
1089 | 1099 | ||
1090 | static __init int setup_noapictimer(char *str) | 1100 | static __init int setup_noapictimer(char *str) |
1091 | { | 1101 | { |
@@ -1118,11 +1128,5 @@ static __init int setup_apicpmtimer(char *s) | |||
1118 | } | 1128 | } |
1119 | __setup("apicpmtimer", setup_apicpmtimer); | 1129 | __setup("apicpmtimer", setup_apicpmtimer); |
1120 | 1130 | ||
1121 | /* dummy parsing: see setup.c */ | ||
1122 | |||
1123 | __setup("disableapic", setup_disableapic); | ||
1124 | __setup("nolapic", setup_nolapic); /* same as disableapic, for compatibility */ | ||
1125 | |||
1126 | __setup("noapictimer", setup_noapictimer); | 1131 | __setup("noapictimer", setup_noapictimer); |
1127 | 1132 | ||
1128 | /* no "lapic" flag - we only use the lapic when the BIOS tells us so. */ | ||