Commit f9b59c80 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] Fix 'pci=noacpi' with buggy ACPI BIOSes

From: Thomas Schlichter <schlicht@uni-mannheim.de>

Make the `pci=noacpi' command line option work correctly.  It fixes
interrupt routing probems for (at least 3) people with broken ACPI BIOSes.
parent 64c7bdeb
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
#define PREFIX "ACPI: " #define PREFIX "ACPI: "
extern int acpi_disabled; extern int acpi_disabled;
extern int acpi_irq;
extern int acpi_ht; extern int acpi_ht;
int acpi_lapic = 0; int acpi_lapic = 0;
...@@ -407,7 +408,7 @@ acpi_boot_init (void) ...@@ -407,7 +408,7 @@ acpi_boot_init (void)
* If MPS is present, it will handle them, * If MPS is present, it will handle them,
* otherwise the system will stay in PIC mode * otherwise the system will stay in PIC mode
*/ */
if (acpi_disabled) { if (acpi_disabled || !acpi_irq) {
return 1; return 1;
} }
......
...@@ -71,6 +71,7 @@ EXPORT_SYMBOL_GPL(mmu_cr4_features); ...@@ -71,6 +71,7 @@ EXPORT_SYMBOL_GPL(mmu_cr4_features);
EXPORT_SYMBOL(acpi_disabled); EXPORT_SYMBOL(acpi_disabled);
#ifdef CONFIG_ACPI_BOOT #ifdef CONFIG_ACPI_BOOT
int acpi_irq __initdata = 1; /* enable IRQ */
int acpi_ht __initdata = 1; /* enable HT */ int acpi_ht __initdata = 1; /* enable HT */
#endif #endif
...@@ -544,6 +545,11 @@ static void __init parse_cmdline_early (char ** cmdline_p) ...@@ -544,6 +545,11 @@ static void __init parse_cmdline_early (char ** cmdline_p)
if (!acpi_force) acpi_disabled = 1; if (!acpi_force) acpi_disabled = 1;
} }
/* "pci=noacpi" disables ACPI interrupt routing */
else if (!memcmp(from, "pci=noacpi", 10)) {
acpi_irq = 0;
}
#ifdef CONFIG_X86_LOCAL_APIC #ifdef CONFIG_X86_LOCAL_APIC
/* disable IO-APIC */ /* disable IO-APIC */
else if (!memcmp(from, "noapic", 6)) else if (!memcmp(from, "noapic", 6))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment