summaryrefslogtreecommitdiffstats
path: root/sys/x86
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2010-06-10 17:04:01 +0000
committermav <mav@FreeBSD.org>2010-06-10 17:04:01 +0000
commit6aaeccb81b535d378ae9c31da158a9151e354ed6 (patch)
tree07c471d13298a2a2e951f46630202a7e7685ac89 /sys/x86
parent7c212e010d5269026628a1e2e686c89679c23af8 (diff)
downloadFreeBSD-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.c2
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);
OpenPOWER on IntegriCloud