# This is a BitKeeper generated patch for the following project: # Project Name: Linux kernel tree # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.1142 -> 1.1143 # arch/x86_64/kernel/mpparse.c 1.4 -> 1.5 # arch/x86_64/kernel/io_apic.c 1.5 -> 1.6 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 03/11/18 len.brown@intel.com 1.1143 # [ACPI] print_IO_APIC() only after it is actually programmed # http://bugzilla.kernel.org/show_bug.cgi?id=1177 # -------------------------------------------- # diff -Nru a/arch/x86_64/kernel/io_apic.c b/arch/x86_64/kernel/io_apic.c --- a/arch/x86_64/kernel/io_apic.c Tue Nov 18 01:11:49 2003 +++ b/arch/x86_64/kernel/io_apic.c Tue Nov 18 01:11:49 2003 @@ -776,7 +776,7 @@ entry.vector = vector; /* - * The timer IRQ doesnt have to know that behind the + * The timer IRQ doesn't have to know that behind the * scene we have a 8259A-master in AEOI mode ... */ irq_desc[0].handler = &ioapic_edge_irq_type; @@ -1112,10 +1112,6 @@ unsigned char old_id; unsigned long flags; - if (acpi_ioapic) - /* This gets done during IOAPIC enumeration for ACPI. */ - return; - /* * Set the IOAPIC ID to the value stored in the MPC table. */ @@ -1652,7 +1648,7 @@ printk(" failed.\n"); if (nmi_watchdog) { - printk(KERN_WARNING "timer doesnt work through the IO-APIC - disabling NMI Watchdog!\n"); + printk(KERN_WARNING "timer doesn't work through the IO-APIC - disabling NMI Watchdog!\n"); nmi_watchdog = 0; } @@ -1713,12 +1709,14 @@ /* * Set up IO-APIC IRQ routing. */ - setup_ioapic_ids_from_mpc(); + if (!acpi_ioapic) + setup_ioapic_ids_from_mpc(); sync_Arb_IDs(); setup_IO_APIC_irqs(); init_IO_APIC_traps(); check_timer(); - print_IO_APIC(); + if (!acpi_ioapic) + print_IO_APIC(); } @@ -1826,7 +1824,7 @@ } -int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level ,int active_high_low) +int io_apic_set_pci_routing (int ioapic, int pin, int irq, int edge_level, int active_high_low) { struct IO_APIC_route_entry entry; unsigned long flags; @@ -1849,7 +1847,7 @@ entry.dest_mode = INT_DELIVERY_MODE; entry.dest.logical.logical_dest = TARGET_CPUS; entry.mask = 1; /* Disabled (masked) */ - entry.trigger = edge_level; + entry.trigger = edge_level; entry.polarity = active_high_low; add_pin_to_irq(irq, ioapic, pin); @@ -1857,7 +1855,7 @@ entry.vector = assign_irq_vector(irq); printk(KERN_DEBUG "IOAPIC[%d]: Set PCI routing entry (%d-%d -> 0x%x -> " - "IRQ %d) Mode:%i Active:%i\n", ioapic, + "IRQ %d Mode:%i Active:%i)\n", ioapic, mp_ioapics[ioapic].mpc_apicid, pin, entry.vector, irq, edge_level, active_high_low); if (edge_level) diff -Nru a/arch/x86_64/kernel/mpparse.c b/arch/x86_64/kernel/mpparse.c --- a/arch/x86_64/kernel/mpparse.c Tue Nov 18 01:11:49 2003 +++ b/arch/x86_64/kernel/mpparse.c Tue Nov 18 01:11:49 2003 @@ -1026,7 +1026,9 @@ mp_ioapic_routing[ioapic].apic_id, ioapic_pin, vector, entry->irq); } - + + print_IO_APIC(); + return; }