Skip to content

Commit

Permalink
x86/ioapic: Correct the PCI/ISA trigger type selection
Browse files Browse the repository at this point in the history
PCI's default trigger type is level and ISA's is edge. The recent
refactoring made it the other way round, which went unnoticed as it seems
only to cause havoc on some AMD systems.

Make the comment and code do the right thing again.

Fixes: a27dca6 ("x86/io_apic: Cleanup trigger/polarity helpers")
Reported-by: Tom Lendacky <thomas.lendacky@amd.com>
Reported-by: Borislav Petkov <bp@alien8.de>
Reported-by: Qian Cai <cai@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Tom Lendacky <thomas.lendacky@amd.com>
Cc: David Woodhouse <dwmw@amazon.co.uk>
Link: https://lore.kernel.org/r/87d00lgu13.fsf@nanos.tec.linutronix.de
  • Loading branch information
Thomas Gleixner committed Nov 10, 2020
1 parent f36a74b commit aec8da0
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions arch/x86/kernel/apic/io_apic.c
Original file line number Diff line number Diff line change
Expand Up @@ -809,9 +809,9 @@ static bool irq_is_level(int idx)
case MP_IRQTRIG_DEFAULT:
/*
* Conforms to spec, ie. bus-type dependent trigger
* mode. PCI defaults to egde, ISA to level.
* mode. PCI defaults to level, ISA to edge.
*/
level = test_bit(bus, mp_bus_not_pci);
level = !test_bit(bus, mp_bus_not_pci);
/* Take EISA into account */
return eisa_irq_is_level(idx, bus, level);
case MP_IRQTRIG_EDGE:
Expand Down

0 comments on commit aec8da0

Please sign in to comment.