diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2005-06-25 17:57:41 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-25 19:24:46 -0400 |
commit | 9635b47d910223745258768418003580ef7dba17 (patch) | |
tree | b61adfddad3bf3069c9fa379b34805420b4ef85c /arch/i386/kernel/apic.c | |
parent | 8f43d03fe2c4962c11d8227ac9505e590bad758b (diff) |
[PATCH] kexec: x86: local apic fix
From: "Maciej W. Rozycki" <macro@linux-mips.org>
Fix a kexec problem whcih causes local APIC detection failure.
The problem is detect_init_APIC() is called early, before the command line
have been processed. Therefore "lapic" (and "nolapic") have not been seen,
yet.
Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Signed-off-by: Eric Biederman <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/i386/kernel/apic.c')
-rw-r--r-- | arch/i386/kernel/apic.c | 25 |
1 files changed, 5 insertions, 20 deletions
diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c index b905d7bb9a0d..cf45bed96d08 100644 --- a/arch/i386/kernel/apic.c +++ b/arch/i386/kernel/apic.c | |||
@@ -41,6 +41,11 @@ | |||
41 | #include "io_ports.h" | 41 | #include "io_ports.h" |
42 | 42 | ||
43 | /* | 43 | /* |
44 | * Knob to control our willingness to enable the local APIC. | ||
45 | */ | ||
46 | int enable_local_apic __initdata = 0; /* -1=force-disable, +1=force-enable */ | ||
47 | |||
48 | /* | ||
44 | * Debug level | 49 | * Debug level |
45 | */ | 50 | */ |
46 | int apic_verbosity; | 51 | int apic_verbosity; |
@@ -666,26 +671,6 @@ static void apic_pm_activate(void) { } | |||
666 | * Original code written by Keir Fraser. | 671 | * Original code written by Keir Fraser. |
667 | */ | 672 | */ |
668 | 673 | ||
669 | /* | ||
670 | * Knob to control our willingness to enable the local APIC. | ||
671 | */ | ||
672 | int enable_local_apic __initdata = 0; /* -1=force-disable, +1=force-enable */ | ||
673 | |||
674 | static int __init lapic_disable(char *str) | ||
675 | { | ||
676 | enable_local_apic = -1; | ||
677 | clear_bit(X86_FEATURE_APIC, boot_cpu_data.x86_capability); | ||
678 | return 0; | ||
679 | } | ||
680 | __setup("nolapic", lapic_disable); | ||
681 | |||
682 | static int __init lapic_enable(char *str) | ||
683 | { | ||
684 | enable_local_apic = 1; | ||
685 | return 0; | ||
686 | } | ||
687 | __setup("lapic", lapic_enable); | ||
688 | |||
689 | static int __init apic_set_verbosity(char *str) | 674 | static int __init apic_set_verbosity(char *str) |
690 | { | 675 | { |
691 | if (strcmp("debug", str) == 0) | 676 | if (strcmp("debug", str) == 0) |