Messages in this thread Patch in this message |  | | | Date | Sun, 26 Nov 2006 15:24:32 -0800 | | From | "Yinghai Lu" <> | | Subject | [PATCH 3/3] x86: when acpi_noirq is set, use mptable instead of MADT | |
[PATCH 3/3] x86: when acpi_noirq is set, use mptable instead of MADT
When using pci=noacpi, or apci=noirq, acpi_noirq is set. We should skip
acpi_process_madt. Because it will set acpi_lapic and acpi_ioapic, at last
mptable is skipped, but we need io apic routing table in mptable.
Signed-off-by: Yinghai Lu <yinghai.lu@amd.com>
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c
index d12fb97..6d62dd1 100644
--- a/arch/i386/kernel/acpi/boot.c
+++ b/arch/i386/kernel/acpi/boot.c
@@ -1242,7 +1242,15 @@ int __init acpi_boot_init(void)
/*
* Process the Multiple APIC Description Table (MADT), if present
*/
- acpi_process_madt();
+ /* with acpi_noirq we don't need to process madt, it will set
+ * acpi_lapic and acpi_ioapic, they will make get_smp_config aka.
+ * MPTABLE be skipped and mp_irqs will not include entries for
+ * irq routing for io apic, then pirq_enable_irq together with
+ * IO_APIC_get_PCI_irq_vector can not find irq in mp_irqs for
+ * devices that are using IOAPIC
+ */
+ if(!acpi_noirq && !acpi_pci_disabled)
+ acpi_process_madt();
acpi_table_parse(ACPI_HPET, acpi_parse_hpet);
|  |