svn commit: r208991 - head/sys/x86/x86

Alexander Motin mav at FreeBSD.org
Thu Jun 10 17:04:02 UTC 2010


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);


More information about the svn-src-all mailing list