diff options
author | mav <mav@FreeBSD.org> | 2010-06-10 17:04:01 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2010-06-10 17:04:01 +0000 |
commit | 6aaeccb81b535d378ae9c31da158a9151e354ed6 (patch) | |
tree | 07c471d13298a2a2e951f46630202a7e7685ac89 /sys/x86 | |
parent | 7c212e010d5269026628a1e2e686c89679c23af8 (diff) | |
download | FreeBSD-src-6aaeccb81b535d378ae9c31da158a9151e354ed6.zip FreeBSD-src-6aaeccb81b535d378ae9c31da158a9151e354ed6.tar.gz |
Do not disable edge-triggered interrupts before migration. DELAY() with
interrupt disabled highly probable causes interrupt loss.
Diffstat (limited to 'sys/x86')
-rw-r--r-- | sys/x86/x86/io_apic.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/x86/x86/io_apic.c b/sys/x86/x86/io_apic.c index cb88b1e..4468486 100644 --- a/sys/x86/x86/io_apic.c +++ b/sys/x86/x86/io_apic.c @@ -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); |