From f9b59c80b8b5b66ec1dc4868eb679ec731d442fd Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Sun, 31 Aug 2003 04:29:25 -0700 Subject: [PATCH] [PATCH] Fix 'pci=noacpi' with buggy ACPI BIOSes From: Thomas Schlichter Make the `pci=noacpi' command line option work correctly. It fixes interrupt routing probems for (at least 3) people with broken ACPI BIOSes. --- arch/i386/kernel/acpi/boot.c | 3 ++- arch/i386/kernel/setup.c | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c index 38bb8a5d976a0..7883fd57bd814 100644 --- a/arch/i386/kernel/acpi/boot.c +++ b/arch/i386/kernel/acpi/boot.c @@ -41,6 +41,7 @@ #define PREFIX "ACPI: " extern int acpi_disabled; +extern int acpi_irq; extern int acpi_ht; int acpi_lapic = 0; @@ -407,7 +408,7 @@ acpi_boot_init (void) * If MPS is present, it will handle them, * otherwise the system will stay in PIC mode */ - if (acpi_disabled) { + if (acpi_disabled || !acpi_irq) { return 1; } diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c index 00341dbcc6558..17ba6a46e53d4 100644 --- a/arch/i386/kernel/setup.c +++ b/arch/i386/kernel/setup.c @@ -71,6 +71,7 @@ EXPORT_SYMBOL_GPL(mmu_cr4_features); EXPORT_SYMBOL(acpi_disabled); #ifdef CONFIG_ACPI_BOOT + int acpi_irq __initdata = 1; /* enable IRQ */ int acpi_ht __initdata = 1; /* enable HT */ #endif @@ -544,6 +545,11 @@ static void __init parse_cmdline_early (char ** cmdline_p) 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 /* disable IO-APIC */ else if (!memcmp(from, "noapic", 6)) -- 2.53.0