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 -puN arch/i386/kernel/acpi/boot.c~noacpi-option-fix arch/i386/kernel/acpi/boot.c --- 25/arch/i386/kernel/acpi/boot.c~noacpi-option-fix 2003-08-25 01:46:10.000000000 -0700 +++ 25-akpm/arch/i386/kernel/acpi/boot.c 2003-08-25 01:46:10.000000000 -0700 @@ -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 -puN arch/i386/kernel/setup.c~noacpi-option-fix arch/i386/kernel/setup.c --- 25/arch/i386/kernel/setup.c~noacpi-option-fix 2003-08-25 01:46:10.000000000 -0700 +++ 25-akpm/arch/i386/kernel/setup.c 2003-08-25 01:46:10.000000000 -0700 @@ -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 ( 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)) _