summaryrefslogtreecommitdiffstats
path: root/sys/dev/aac/aac_pci.c
diff options
context:
space:
mode:
authorscottl <scottl@FreeBSD.org>2003-02-19 21:58:34 +0000
committerscottl <scottl@FreeBSD.org>2003-02-19 21:58:34 +0000
commit6ececd4417e9635c5b55583283f2640c2fb05a6b (patch)
tree25035399bc17c6c584e99655dd9114daacea575c /sys/dev/aac/aac_pci.c
parente7c18881a0bf0ba8620d4b0347f9acf5623ff365 (diff)
downloadFreeBSD-src-6ececd4417e9635c5b55583283f2640c2fb05a6b.zip
FreeBSD-src-6ececd4417e9635c5b55583283f2640c2fb05a6b.tar.gz
Make the aac driver be INTR_MPSAFE. Once the interrupt handler determines
that a command completion happened, all further processing is deferred to a taskqueue. The taskqueue itself runs implicetely under Giant, but we already used a taskqueue for the biodone() processing, so this at least saves the contesting of Giant in the interrupt handler.
Diffstat (limited to 'sys/dev/aac/aac_pci.c')
-rw-r--r--sys/dev/aac/aac_pci.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/aac/aac_pci.c b/sys/dev/aac/aac_pci.c
index 6f6b7e3..85bd529 100644
--- a/sys/dev/aac/aac_pci.c
+++ b/sys/dev/aac/aac_pci.c
@@ -223,8 +223,9 @@ aac_pci_attach(device_t dev)
#ifndef INTR_ENTROPY
#define INTR_ENTROPY 0
#endif
- if (bus_setup_intr(sc->aac_dev, sc->aac_irq, INTR_TYPE_BIO|INTR_ENTROPY,
- aac_intr, sc, &sc->aac_intr)) {
+ if (bus_setup_intr(sc->aac_dev, sc->aac_irq,
+ INTR_MPSAFE|INTR_TYPE_BIO|INTR_ENTROPY, aac_intr,
+ sc, &sc->aac_intr)) {
device_printf(sc->aac_dev, "can't set up interrupt\n");
goto out;
}
OpenPOWER on IntegriCloud