5ea878684f
One common method of EOI'ing an interrupt at the IO-APIC level is to switch the pin to edge triggering mode and then back into level mode. That would cause the IRR bit to be cleared and thus further interrupts to be injected. FreeBSD does indeed use that method if the IO-APIC EOI register is not supported. The bhyve IO-APIC emulation code didn't clear the IRR bit when doing that switch, and was also missing acknowledging the IRR state when trying to inject an interrupt in vioapic_send_intr. Reviewed by: grehan Differential revision: https://reviews.freebsd.org/D28238 |
||
---|---|---|
.. | ||
iommu.c | ||
iommu.h | ||
ppt.c | ||
ppt.h | ||
vatpic.c | ||
vatpic.h | ||
vatpit.c | ||
vatpit.h | ||
vhpet.c | ||
vhpet.h | ||
vioapic.c | ||
vioapic.h | ||
vlapic_priv.h | ||
vlapic.c | ||
vlapic.h | ||
vpmtmr.c | ||
vpmtmr.h | ||
vrtc.c | ||
vrtc.h |