diff options
author | Jan Beulich <jbeulich@novell.com> | 2009-01-14 07:27:35 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-01-15 06:04:40 -0500 |
commit | f11826385b63566d98c02d35f592232ee77cd791 (patch) | |
tree | 07caf8db36be6c5b56bb7dacd49b95c520fb4db1 /arch/x86/kernel/apic.c | |
parent | 5cca0cf15a94417f49625ce52e23589eed0a1675 (diff) |
x86: fully honor "nolapic"
Impact: widen the effect of the 'nolapic' boot parameter
"nolapic" should not only suppress SMP and use of the LAPIC, but it
also ought to have the effect of disabling all IO-APIC related activity
as well as PCI MSI and HT-IRQs.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/apic.c')
-rw-r--r-- | arch/x86/kernel/apic.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/x86/kernel/apic.c b/arch/x86/kernel/apic.c index 0f830e4f5675..c3dd64fabcf3 100644 --- a/arch/x86/kernel/apic.c +++ b/arch/x86/kernel/apic.c | |||
@@ -1126,6 +1126,11 @@ void __cpuinit setup_local_APIC(void) | |||
1126 | unsigned int value; | 1126 | unsigned int value; |
1127 | int i, j; | 1127 | int i, j; |
1128 | 1128 | ||
1129 | if (disable_apic) { | ||
1130 | disable_ioapic_setup(); | ||
1131 | return; | ||
1132 | } | ||
1133 | |||
1129 | #ifdef CONFIG_X86_32 | 1134 | #ifdef CONFIG_X86_32 |
1130 | /* Pound the ESR really hard over the head with a big hammer - mbligh */ | 1135 | /* Pound the ESR really hard over the head with a big hammer - mbligh */ |
1131 | if (lapic_is_integrated() && esr_disable) { | 1136 | if (lapic_is_integrated() && esr_disable) { |
@@ -1566,11 +1571,11 @@ int apic_version[MAX_APICS]; | |||
1566 | 1571 | ||
1567 | int __init APIC_init_uniprocessor(void) | 1572 | int __init APIC_init_uniprocessor(void) |
1568 | { | 1573 | { |
1569 | #ifdef CONFIG_X86_64 | ||
1570 | if (disable_apic) { | 1574 | if (disable_apic) { |
1571 | pr_info("Apic disabled\n"); | 1575 | pr_info("Apic disabled\n"); |
1572 | return -1; | 1576 | return -1; |
1573 | } | 1577 | } |
1578 | #ifdef CONFIG_X86_64 | ||
1574 | if (!cpu_has_apic) { | 1579 | if (!cpu_has_apic) { |
1575 | disable_apic = 1; | 1580 | disable_apic = 1; |
1576 | pr_info("Apic disabled by BIOS\n"); | 1581 | pr_info("Apic disabled by BIOS\n"); |