Index: sys/kern/subr_intr.c =================================================================== --- sys/kern/subr_intr.c +++ sys/kern/subr_intr.c @@ -428,10 +428,8 @@ if (isrc->isrc_irq >= intr_nirq) return (EINVAL); - if (irq_sources[isrc->isrc_irq] != isrc) - return (EINVAL); - - irq_sources[isrc->isrc_irq] = NULL; + if (irq_sources[isrc->isrc_irq] == isrc) + irq_sources[isrc->isrc_irq] = NULL; isrc->isrc_irq = INTR_IRQ_INVALID; /* just to be safe */ /*