Re: [PATCH -rt] irq nobody cared workaround for i386
From: Steven Rostedt <hidden>
Date: 2007-06-20 14:20:04
Also in:
lkml
Michal Schmidt wrote:
Michal Schmidt wrote:
I came to the conclusion that the IO-APICs which need the fix for the nobody cared bug don't have the issue ack_ioapic_quirk_irq is designed to work-around. It should be safe simply to use the normal ack_ioapic_irq as the .eoi method in pcix_ioapic_chip. So this is the port of Steven's fix for the nobody cared bug to i386. It works fine on IBM LS21 I have access to.
Thanks Michal for doing this!
Signed-off-by: Michal Schmidt <redacted>
quoted hunk ↗ jump to hunk
@@ -1336,7 +1371,7 @@ static void __init setup_IO_APIC_irqs(vo if (IO_APIC_IRQ(irq)) { vector = assign_irq_vector(irq); entry.vector = vector; - ioapic_register_intr(irq, vector, IOAPIC_AUTO); + ioapic_register_intr(irq, vector, IOAPIC_AUTO, apic>0);
You want to make that "apic > 0". Note the spacing. If it breaks 80 characters, then simply put it to a new line.
quoted hunk ↗ jump to hunk
if (!apic && (irq < 16)) disable_8259A_irq(irq);@@ -2058,6 +2093,18 @@ static struct irq_chip ioapic_chip __rea .retrigger = ioapic_retrigger_irq, };
[...]
quoted hunk ↗ jump to hunk
static inline void init_IO_APIC_traps(void) {@@ -2858,7 +2905,7 @@ int io_apic_set_pci_routing (int ioapic, mp_ioapics[ioapic].mpc_apicid, pin, entry.vector, irq, edge_level, active_high_low); - ioapic_register_intr(irq, entry.vector, edge_level); + ioapic_register_intr(irq, entry.vector, edge_level, ioapic>0);
Again, add the spaces.
if (!ioapic && (irq < 16)) disable_8259A_irq(irq);
ACK -- Steve