summaryrefslogtreecommitdiff
path: root/sys/dev/isa/pas.c
diff options
context:
space:
mode:
authorAlexandre Ratchov <ratchov@cvs.openbsd.org>2013-05-24 07:58:48 +0000
committerAlexandre Ratchov <ratchov@cvs.openbsd.org>2013-05-24 07:58:48 +0000
commita17435250580896870a6e809bdf9191d8863f719 (patch)
tree4a8b4e47c49b101fa8f6c0f43f1e7a766fa35a89 /sys/dev/isa/pas.c
parent844dc26f6ca4b55b2888091e428d0faaffcc81a3 (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/isa/pas.c')
-rw-r--r--sys/dev/isa/pas.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/dev/isa/pas.c b/sys/dev/isa/pas.c
index 7ba974ddaec..f252fd2f3c6 100644
--- a/sys/dev/isa/pas.c
+++ b/sys/dev/isa/pas.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pas.c,v 1.25 2008/04/21 00:32:42 jakemsr Exp $ */
+/* $OpenBSD: pas.c,v 1.26 2013/05/24 07:58:46 ratchov Exp $ */
/* $NetBSD: pas.c,v 1.37 1998/01/12 09:43:43 thorpej Exp $ */
/*
@@ -411,8 +411,9 @@ pasattach(parent, self, aux)
sc->sc_sbdsp.sc_isa = parent;
sc->sc_sbdsp.sc_iobase = iobase;
- sc->sc_sbdsp.sc_ih = isa_intr_establish(ia->ia_ic, ia->ia_irq, IST_EDGE,
- IPL_AUDIO, sbdsp_intr, &sc->sc_sbdsp, sc->sc_sbdsp.sc_dev.dv_xname);
+ sc->sc_sbdsp.sc_ih = isa_intr_establish(ia->ia_ic, ia->ia_irq,
+ IST_EDGE, IPL_AUDIO | IPL_MPSAFE,
+ sbdsp_intr, &sc->sc_sbdsp, sc->sc_sbdsp.sc_dev.dv_xname);
printf(" ProAudio Spectrum %s [rev %d] ", pasnames[sc->model], sc->rev);