-/* $OpenBSD: intr.c,v 1.60 2024/06/15 18:01:44 kettenis Exp $ */
+/* $OpenBSD: intr.c,v 1.61 2024/06/25 12:02:48 kettenis Exp $ */
/* $NetBSD: intr.c,v 1.3 2003/03/03 22:16:20 fvdl Exp $ */
/*
};
int intr_suspended;
+struct intrhand *intr_nowake;
/*
* Fill in default interrupt table (in case of spurious interrupt
* We may not be able to mask MSIs, so block non-wakeup
* interrupts while we're suspended.
*/
- if (intr_suspended && (ih->ih_flags & IPL_WAKEUP) == 0)
+ if (intr_suspended && (ih->ih_flags & IPL_WAKEUP) == 0) {
+ intr_nowake = ih;
return 0;
+ }
#ifdef MULTIPROCESSOR
if (ih->ih_flags & IPL_MPSAFE)
if (pic->pic_hwunmask)
pic->pic_hwunmask(pic, pin);
}
+
+ if (intr_nowake) {
+ printf("last non-wakeup interrupt: irq%d/%s\n",
+ *(int *)intr_nowake->ih_count.ec_data,
+ intr_nowake->ih_count.ec_name);
+ intr_nowake = NULL;
+ }
}
#endif