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/isa/pas.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/isa/pas.c')
-rw-r--r-- | sys/dev/isa/pas.c | 7 |
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); |