diff options
author | mav <mav@FreeBSD.org> | 2010-06-22 16:10:48 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2010-06-22 16:10:48 +0000 |
commit | 05fa7e773aea46aa7b2e47f949c68e740e736502 (patch) | |
tree | 42fc2cc245244f5b95c8d3c4bf241520913f5ee7 | |
parent | 1bee12309eb3a593ada391f627e966a1c13f38a5 (diff) | |
download | FreeBSD-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@
-rw-r--r-- | sys/dev/acpica/acpi_hpet.c | 1 |
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. */ |