diff options
author | Alexandre Ratchov <ratchov@cvs.openbsd.org> | 2013-05-24 07:58:48 +0000 |
---|---|---|
committer | Alexandre Ratchov <ratchov@cvs.openbsd.org> | 2013-05-24 07:58:48 +0000 |
commit | a17435250580896870a6e809bdf9191d8863f719 (patch) | |
tree | 4a8b4e47c49b101fa8f6c0f43f1e7a766fa35a89 /sys/dev/pci/cmpci.c | |
parent | 844dc26f6ca4b55b2888091e428d0faaffcc81a3 (diff) |
Since audio code is mp safe, establish isa and pci audio interrupts
with the IPL_MPSAFE flag. In certain circumstances, this prevents
interrupt handlers from waiting the global kernel_lock possibly (hold
by slower code) to be released.
ok kettenis
Diffstat (limited to 'sys/dev/pci/cmpci.c')
-rw-r--r-- | sys/dev/pci/cmpci.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/pci/cmpci.c b/sys/dev/pci/cmpci.c index 6a14efd705a..3fb4b65de0b 100644 --- a/sys/dev/pci/cmpci.c +++ b/sys/dev/pci/cmpci.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmpci.c,v 1.34 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: cmpci.c,v 1.35 2013/05/24 07:58:46 ratchov Exp $ */ /* $NetBSD: cmpci.c,v 1.25 2004/10/26 06:32:20 xtraeme Exp $ */ /* @@ -391,8 +391,8 @@ cmpci_attach(struct device *parent, struct device *self, void *aux) return; } intrstr = pci_intr_string(pa->pa_pc, ih); - sc->sc_ih = pci_intr_establish(pa->pa_pc, ih, IPL_AUDIO, cmpci_intr, sc, - sc->sc_dev.dv_xname); + sc->sc_ih = pci_intr_establish(pa->pa_pc, ih, IPL_AUDIO | IPL_MPSAFE, + cmpci_intr, sc, sc->sc_dev.dv_xname); if (sc->sc_ih == NULL) { printf(": can't establish interrupt"); if (intrstr != NULL) |