============================================= (cd /usr/src && patch -p6) < diff_to_current ============================================= --- //depot/vendor/freebsd/src/sys/kern/kern_intr.c 2007/06/05 00:03:37 +++ //depot/user/simokawa/firewire_lock/sys/kern/kern_intr.c 2007/06/05 14:26:15 @@ -1325,14 +1325,17 @@ if (ie->ie_disab != NULL) ie->ie_disab(ie->ie_source); } - critical_exit(); /* Interrupt storm logic */ if (thread & FILTER_STRAY) { ie->ie_count++; - if (ie->ie_count < intr_storm_threshold) + if (ie->ie_count < intr_storm_threshold) { printf("Interrupt stray detection not present\n"); + if (ie->ie_eoi != NULL) + ie->ie_eoi(ie->ie_source); + } } + critical_exit(); /* Schedule an ithread if needed. */ if (thread & FILTER_SCHEDULE_THREAD) {