acpi/resource: Only skip SCI trigger/polarity configuration
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Mon, 10 Sep 2012 09:03:41 +0000 (17:03 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Mon, 10 Sep 2012 09:05:06 +0000 (17:05 +0800)
The code before this commit could cause interrupt storm on certain
systems, on which certain IRQs are configured into different mode
but the configured IRQs are actually never used.

Reported-by: swildner@
sys/dev/acpica5/acpi_resource.c

index eae8e53..a57b707 100644 (file)
@@ -144,7 +144,17 @@ acpi_config_intr(device_t dev, ACPI_RESOURCE *res)
     else
        polarity = INTR_POLARITY_LOW;
 
-    if (machintr_legacy_intr_find(irq, trigger, polarity) < 0) {
+#if 0
+    /*
+     * This causes interrupt storm on certain systems, on which
+     * certain IRQs are configured into different mode but the
+     * configured IRQs are actually never used.
+     */
+    if (machintr_legacy_intr_find(irq, trigger, polarity) < 0)
+#else
+    if (irq == acpi_sci_irqno())
+#endif
+    {
        if (bootverbose)
                kprintf("acpi_config_intr: Skip irq %d config\n", irq);
     } else {