summaryrefslogtreecommitdiffstats
path: root/sys/dev/isa/gus.c
diff options
context:
space:
mode:
authorratchov <ratchov@openbsd.org>2013-05-24 07:58:46 +0000
committerratchov <ratchov@openbsd.org>2013-05-24 07:58:46 +0000
commit61932e1479f3fc4a2ff1ed885ff398a5947d89e2 (patch)
tree51ebe7ae32378b4da41e7b8dbc2b02a85064fcec /sys/dev/isa/gus.c
parentfor this type of page, where we list supported hardware, no need to relist (diff)
downloadwireguard-openbsd-61932e1479f3fc4a2ff1ed885ff398a5947d89e2.tar.xz
wireguard-openbsd-61932e1479f3fc4a2ff1ed885ff398a5947d89e2.zip
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/gus.c')
-rw-r--r--sys/dev/isa/gus.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/dev/isa/gus.c b/sys/dev/isa/gus.c
index 92100774283..5b915987d54 100644
--- a/sys/dev/isa/gus.c
+++ b/sys/dev/isa/gus.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: gus.c,v 1.36 2013/05/15 08:29:24 ratchov Exp $ */
+/* $OpenBSD: gus.c,v 1.37 2013/05/24 07:58:46 ratchov Exp $ */
/* $NetBSD: gus.c,v 1.51 1998/01/25 23:48:06 mycroft Exp $ */
/*-
@@ -3595,8 +3595,9 @@ gus_subattach(sc, ia)
/* XXX we shouldn't have to use splgus == splclock, nor should
* we use IPL_CLOCK.
*/
- sc->sc_ih = isa_intr_establish(ia->ia_ic, ia->ia_irq, IST_EDGE,
- IPL_AUDIO, gusintr, sc /* sc->sc_gusdsp */, sc->sc_dev.dv_xname);
+ sc->sc_ih = isa_intr_establish(ia->ia_ic, ia->ia_irq,
+ IST_EDGE, IPL_AUDIO | IPL_MPSAFE,
+ gusintr, sc /* sc->sc_gusdsp */, sc->sc_dev.dv_xname);
/*
* Set some default values