The two patches try to fix bug 2874, and Stian confirmed. Basically in Stian's system, _PRT table lets some devices use link device for irq routing even in IOAPIC mode. And in IOAPIC mode, if link device is enabled, all devices linked to the link device in PIC mode will not connect to IOAPIC pins, instead they will use PIC mode irq routing. I'm not sure if the patches will break other systems, so they should be test for a long time. http://bugzilla.kernel.org/show_bug.cgi?id=2874 acpi_irq_balance is for PCI link device (pci interrupt router), it hasn't any relationship with APIC/IOAPIC. Default enabling it in APIC mode doesn't make sense to me. Signed-off-by: Shaohua Li<shaohua.li@xxxxxxxxx> diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c index c8f96cf..3497443 100644 --- a/arch/i386/kernel/acpi/boot.c +++ b/arch/i386/kernel/acpi/boot.c @@ -927,7 +927,6 @@ #endif error = acpi_parse_madt_ioapic_entries(); if (!error) { acpi_irq_model = ACPI_IRQ_MODEL_IOAPIC; - acpi_irq_balance_set(NULL); acpi_ioapic = 1; smp_found_config = 1; diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c index d53bd98..6833ad3 100644 --- a/drivers/acpi/pci_link.c +++ b/drivers/acpi/pci_link.c @@ -899,7 +899,7 @@ static int __init acpi_irq_nobalance_set __setup("acpi_irq_nobalance", acpi_irq_nobalance_set); -int __init acpi_irq_balance_set(char *str) +static int __init acpi_irq_balance_set(char *str) { acpi_irq_balance = 1; return 1; diff --git a/include/asm-i386/acpi.h b/include/asm-i386/acpi.h index c80b3a9..2a94a1b 100644 --- a/include/asm-i386/acpi.h +++ b/include/asm-i386/acpi.h @@ -141,7 +141,6 @@ static inline void acpi_disable_pci(void acpi_pci_disabled = 1; acpi_noirq_set(); } -extern int acpi_irq_balance_set(char *str); #else /* !CONFIG_ACPI */ diff --git a/include/asm-x86_64/acpi.h b/include/asm-x86_64/acpi.h index 9d1916e..1490554 100644 --- a/include/asm-x86_64/acpi.h +++ b/include/asm-x86_64/acpi.h @@ -127,7 +127,6 @@ static inline void acpi_disable_pci(void acpi_pci_disabled = 1; acpi_noirq_set(); } -extern int acpi_irq_balance_set(char *str); #else /* !CONFIG_ACPI */ - To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html