x86_64/ioapic: Make sure that legacy IRQ only appears on one CPU.
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Mon, 23 Apr 2018 14:15:44 +0000 (22:15 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Mon, 23 Apr 2018 14:30:18 +0000 (22:30 +0800)
commitaf4982b6e71e23514428c9c7755335f2f15f2e23
treeffab35b26e76fbf8515d09333a14eddcad72ef2f
parent3498437bdd63ffbd987f722ffa5396820e0a6c3e
x86_64/ioapic: Make sure that legacy IRQ only appears on one CPU.

The legacy IRQ lookup assumes only one CPU has a given legacy IRQ.

On system w/ large number of IOAPIC, GSI96 could be mapped to IRQ17
on CPU0 (since IRQ96 is used by SYSCALL), while GSI17 is mapped to
IRQ17 on another CPU.  This breaks later IRQ lookup.

Reported-by: Imre Vadasz
Tested-by: Imre Vadasz
sys/platform/pc64/apic/ioapic_abi.c