Author: mav
Date: Thu Jun 10 17:04:01 2010
New Revision: 208991
URL: http://svn.freebsd.org/changeset/base/208991
Log:
Do not disable edge-triggered interrupts before migration. DELAY() with
interrupt disabled highly probable causes interrupt loss.
Modified:
head/sys/x86/x86/io_apic.c
Modified: head/sys/x86/x86/io_apic.c
==============================================================================
--- head/sys/x86/x86/io_apic.c Thu Jun 10 16:56:35 2010 (r208990)
+++ head/sys/x86/x86/io_apic.c Thu Jun 10 17:04:01 2010 (r208991)
@@ -356,7 +356,7 @@ ioapic_assign_cpu(struct intsrc *isrc, u
* 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);
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"