⬢ DragonFlyBSD Kernel Audit
DF-5654 / fix.diff
← back to finding ↓ download raw
--- sys/platform/pc64/icu/icu.c
+++ sys/platform/pc64/icu/icu.c
@@ -54,6 +54,7 @@
 #include <machine/intr_machdep.h>
 #include <machine_base/icu/icu.h>
 #include <machine_base/icu/icu_var.h>
+#include <machine_base/icu/elcr_var.h>
 #include <machine_base/apic/ioapic.h>
 
 static void	icu_init(void);
@@ -124,10 +125,12 @@ icu_definit(void)
 /*
  * ICU reinitialize when ICU configuration has lost.
  */
 void
 icu_reinit(void)
 {
 #ifdef foo
 	int i;
 
 	icu_init();
 	for (i = 0; i < MAX_HARDINTS; ++i) {
 		if (count_registered_ints(i))
 			machintr_intr_enable(i);
 	}
 #else
+	if (elcr_found)
+		elcr_resume();	/* restore ELCR trigger modes with the PICs */
 	icu_init();
 #endif
 }