Do not disable edge-triggered interrupts before migration. DELAY() with

interrupt disabled highly probable causes interrupt loss.
This commit is contained in:
mav 2010-06-10 17:04:01 +00:00
parent 7c212e010d
commit 6aaeccb81b

View File

@ -356,7 +356,7 @@ ioapic_assign_cpu(struct intsrc *isrc, u_int apic_id)
* extra DELAY() to avoid being stuck in a non-EOI'd state.
*/
mtx_lock_spin(&icu_lock);
if (!intpin->io_masked) {
if (!intpin->io_masked && !intpin->io_edgetrigger) {
ioapic_write(io->io_addr, IOAPIC_REDTBL_LO(intpin->io_intpin),
intpin->io_lowreg | IOART_INTMSET);
DELAY(100);