summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2010-06-22 16:10:48 +0000
committermav <mav@FreeBSD.org>2010-06-22 16:10:48 +0000
commit05fa7e773aea46aa7b2e47f949c68e740e736502 (patch)
tree42fc2cc245244f5b95c8d3c4bf241520913f5ee7 /sys
parent1bee12309eb3a593ada391f627e966a1c13f38a5 (diff)
downloadFreeBSD-src-05fa7e773aea46aa7b2e47f949c68e740e736502.zip
FreeBSD-src-05fa7e773aea46aa7b2e47f949c68e740e736502.tar.gz
Do not set level-triggered interrupt mode if we are not going to use it.
This fixes QEMU crash due to unsupported level-triggered HPET interrupts. Reported by: kib@
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/acpica/acpi_hpet.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/acpica/acpi_hpet.c b/sys/dev/acpica/acpi_hpet.c
index 39ccbe9..68918e1 100644
--- a/sys/dev/acpica/acpi_hpet.c
+++ b/sys/dev/acpica/acpi_hpet.c
@@ -526,6 +526,7 @@ hpet_attach(device_t dev)
t->irq = -2;
} else
#endif
+ if (sc->irq >= 0 && (t->vectors & (1 << sc->irq)))
t->caps |= (sc->irq << 9) | HPET_TCNF_INT_TYPE;
bus_write_4(sc->mem_res, HPET_TIMER_CAP_CNF(i), t->caps);
/* Skip event timers without set up IRQ. */
OpenPOWER on IntegriCloud