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 | |
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')
-rw-r--r-- | sys/dev/isa/ess.c | 8 | ||||
-rw-r--r-- | sys/dev/isa/gus.c | 7 | ||||
-rw-r--r-- | sys/dev/isa/mpu_isapnp.c | 6 | ||||
-rw-r--r-- | sys/dev/isa/pas.c | 7 | ||||
-rw-r--r-- | sys/dev/isa/sb.c | 7 | ||||
-rw-r--r-- | sys/dev/isa/wss.c | 5 | ||||
-rw-r--r-- | sys/dev/isa/ym.c | 7 | ||||
-rw-r--r-- | sys/dev/pci/auacer.c | 4 | ||||
-rw-r--r-- | sys/dev/pci/auglx.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/auich.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/auixp.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/autri.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/auvia.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/azalia.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/cmpci.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/cs4280.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/cs4281.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/eap.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/emuxki.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/envy.c | 4 | ||||
-rw-r--r-- | sys/dev/pci/esa.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/eso.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/fms.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/maestro.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/neo.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/sv.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/yds.c | 6 |
27 files changed, 85 insertions, 78 deletions
diff --git a/sys/dev/isa/ess.c b/sys/dev/isa/ess.c index 2e54a2b3ff6..7e5f0bff2c3 100644 --- a/sys/dev/isa/ess.c +++ b/sys/dev/isa/ess.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ess.c,v 1.17 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: ess.c,v 1.18 2013/05/24 07:58:46 ratchov Exp $ */ /* $NetBSD: ess.c,v 1.44.4.1 1999/06/21 01:18:00 thorpej Exp $ */ /* @@ -904,7 +904,8 @@ essattach(sc) sc->sc_audio1.polled = sc->sc_audio1.irq == -1; if (!sc->sc_audio1.polled) { sc->sc_audio1.ih = isa_intr_establish(sc->sc_ic, - sc->sc_audio1.irq, sc->sc_audio1.ist, IPL_AUDIO, + sc->sc_audio1.irq, sc->sc_audio1.ist, + IPL_AUDIO | IPL_MPSAFE, ess_audio1_intr, sc, sc->sc_dev.dv_xname); printf("%s: audio1 interrupting at irq %d\n", sc->sc_dev.dv_xname, sc->sc_audio1.irq); @@ -921,7 +922,8 @@ essattach(sc) sc->sc_audio2.polled = sc->sc_audio2.irq == -1; if (!sc->sc_audio2.polled) { sc->sc_audio2.ih = isa_intr_establish(sc->sc_ic, - sc->sc_audio2.irq, sc->sc_audio2.ist, IPL_AUDIO, + sc->sc_audio2.irq, sc->sc_audio2.ist, + IPL_AUDIO | IPL_MPSAFE, ess_audio2_intr, sc, sc->sc_dev.dv_xname); printf("%s: audio2 interrupting at irq %d\n", sc->sc_dev.dv_xname, sc->sc_audio2.irq); 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 diff --git a/sys/dev/isa/mpu_isapnp.c b/sys/dev/isa/mpu_isapnp.c index 009ebfb91c3..ac274f84ad9 100644 --- a/sys/dev/isa/mpu_isapnp.c +++ b/sys/dev/isa/mpu_isapnp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mpu_isapnp.c,v 1.6 2002/11/28 23:24:53 mickey Exp $ */ +/* $OpenBSD: mpu_isapnp.c,v 1.7 2013/05/24 07:58:46 ratchov Exp $ */ #include "midi.h" @@ -62,8 +62,8 @@ mpu_isapnp_attach(parent, self, aux) sc->sc_mpu.ioh = ipa->ipa_io[0].h; sc->sc_ih = isa_intr_establish(ipa->ia_ic, ipa->ipa_irq[0].num, - ipa->ipa_irq[0].type, IPL_AUDIO, mpu_intr, &sc->sc_mpu, - sc->sc_dev.dv_xname); + ipa->ipa_irq[0].type, IPL_AUDIO | IPL_MPSAFE, + mpu_intr, &sc->sc_mpu, sc->sc_dev.dv_xname); if (!mpu_find(&sc->sc_mpu)) { printf("%s: find failed\n", sc->sc_dev.dv_xname); 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); diff --git a/sys/dev/isa/sb.c b/sys/dev/isa/sb.c index 0ac148e8b51..f563781479d 100644 --- a/sys/dev/isa/sb.c +++ b/sys/dev/isa/sb.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sb.c,v 1.25 2008/04/21 00:32:42 jakemsr Exp $ */ +/* $OpenBSD: sb.c,v 1.26 2013/05/24 07:58:46 ratchov Exp $ */ /* $NetBSD: sb.c,v 1.57 1998/01/12 09:43:46 thorpej Exp $ */ /* @@ -262,8 +262,9 @@ sbattach(sc) struct midi_hw_if *mhw = &sb_midi_hw_if; #endif - sc->sc_ih = isa_intr_establish(sc->sc_ic, sc->sc_irq, IST_EDGE, - IPL_AUDIO, sbdsp_intr, sc, sc->sc_dev.dv_xname); + sc->sc_ih = isa_intr_establish(sc->sc_ic, sc->sc_irq, + IST_EDGE, IPL_AUDIO | IPL_MPSAFE, + sbdsp_intr, sc, sc->sc_dev.dv_xname); sbdsp_attach(sc); diff --git a/sys/dev/isa/wss.c b/sys/dev/isa/wss.c index f78b9a93efc..53ecf9f2a52 100644 --- a/sys/dev/isa/wss.c +++ b/sys/dev/isa/wss.c @@ -1,4 +1,4 @@ -/* $OpenBSD: wss.c,v 1.25 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: wss.c,v 1.26 2013/05/24 07:58:46 ratchov Exp $ */ /* $NetBSD: wss.c,v 1.42 1998/01/19 22:18:23 augustss Exp $ */ /* @@ -126,7 +126,8 @@ wssattach(sc) madattach(sc); - sc->sc_ih = isa_intr_establish(sc->sc_ic, sc->wss_irq, IST_EDGE, IPL_AUDIO, + sc->sc_ih = isa_intr_establish(sc->sc_ic, sc->wss_irq, + IST_EDGE, IPL_AUDIO | IPL_MPSAFE, ad1848_intr, &sc->sc_ad1848, sc->sc_dev.dv_xname); ad1848_attach(&sc->sc_ad1848); diff --git a/sys/dev/isa/ym.c b/sys/dev/isa/ym.c index b5a785d3e50..a11a9f0cc47 100644 --- a/sys/dev/isa/ym.c +++ b/sys/dev/isa/ym.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ym.c,v 1.17 2010/07/31 11:25:38 ratchov Exp $ */ +/* $OpenBSD: ym.c,v 1.18 2013/05/24 07:58:46 ratchov Exp $ */ /* @@ -362,8 +362,9 @@ ym_attach(sc) struct midi_hw_if *mhw = &ym_mpu401_hw_if; #endif - sc->sc_ih = isa_intr_establish(sc->sc_ic, sc->ym_irq, IST_EDGE, - IPL_AUDIO, ym_intr, &sc->sc_ad1848, sc->sc_dev.dv_xname); + sc->sc_ih = isa_intr_establish(sc->sc_ic, sc->ym_irq, + IST_EDGE, IPL_AUDIO | IPL_MPSAFE, + ym_intr, &sc->sc_ad1848, sc->sc_dev.dv_xname); ad1848_attach(&sc->sc_ad1848); printf("\n"); diff --git a/sys/dev/pci/auacer.c b/sys/dev/pci/auacer.c index 1729bfa1536..5d3273cf841 100644 --- a/sys/dev/pci/auacer.c +++ b/sys/dev/pci/auacer.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auacer.c,v 1.13 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: auacer.c,v 1.14 2013/05/24 07:58:46 ratchov Exp $ */ /* $NetBSD: auacer.c,v 1.3 2004/11/10 04:20:26 kent Exp $ */ /*- @@ -257,7 +257,7 @@ auacer_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, + sc->sc_ih = pci_intr_establish(pa->pa_pc, ih, IPL_AUDIO | IPL_MPSAFE, auacer_intr, sc, sc->sc_dev.dv_xname); if (sc->sc_ih == NULL) { printf("%s: can't establish interrupt", diff --git a/sys/dev/pci/auglx.c b/sys/dev/pci/auglx.c index 697e9c46ea0..d6e72eae2ba 100644 --- a/sys/dev/pci/auglx.c +++ b/sys/dev/pci/auglx.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auglx.c,v 1.9 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: auglx.c,v 1.10 2013/05/24 07:58:46 ratchov Exp $ */ /* * Copyright (c) 2008 Marc Balmer <mbalmer@openbsd.org> @@ -323,8 +323,8 @@ auglx_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, auglx_intr, - sc, sc->sc_dev.dv_xname); + sc->sc_ih = pci_intr_establish(pa->pa_pc, ih, IPL_AUDIO | IPL_MPSAFE, + auglx_intr, sc, sc->sc_dev.dv_xname); if (!sc->sc_ih) { printf(": can't establish interrupt"); if (intrstr) diff --git a/sys/dev/pci/auich.c b/sys/dev/pci/auich.c index ea0923e33ac..51d3da6c97e 100644 --- a/sys/dev/pci/auich.c +++ b/sys/dev/pci/auich.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auich.c,v 1.97 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: auich.c,v 1.98 2013/05/24 07:58:46 ratchov Exp $ */ /* * Copyright (c) 2000,2001 Michael Shalayeff @@ -446,8 +446,8 @@ auich_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, auich_intr, - sc, sc->sc_dev.dv_xname); + sc->sc_ih = pci_intr_establish(pa->pa_pc, ih, IPL_AUDIO | IPL_MPSAFE, + auich_intr, sc, sc->sc_dev.dv_xname); if (!sc->sc_ih) { printf(": can't establish interrupt"); if (intrstr) diff --git a/sys/dev/pci/auixp.c b/sys/dev/pci/auixp.c index 325d37c6990..b7c1a04cf91 100644 --- a/sys/dev/pci/auixp.c +++ b/sys/dev/pci/auixp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auixp.c,v 1.30 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: auixp.c,v 1.31 2013/05/24 07:58:46 ratchov Exp $ */ /* $NetBSD: auixp.c,v 1.9 2005/06/27 21:13:09 thorpej Exp $ */ /* @@ -1317,8 +1317,8 @@ auixp_attach(struct device *parent, struct device *self, void *aux) return; } intrstr = pci_intr_string(pc, ih); - sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO, auixp_intr, sc, - sc->sc_dev.dv_xname); + sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO | IPL_MPSAFE, + auixp_intr, sc, sc->sc_dev.dv_xname); if (sc->sc_ih == NULL) { printf(": can't establish interrupt"); if (intrstr != NULL) diff --git a/sys/dev/pci/autri.c b/sys/dev/pci/autri.c index 12cb19f5cc7..fa281b4d6de 100644 --- a/sys/dev/pci/autri.c +++ b/sys/dev/pci/autri.c @@ -1,4 +1,4 @@ -/* $OpenBSD: autri.c,v 1.32 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: autri.c,v 1.33 2013/05/24 07:58:46 ratchov Exp $ */ /* * Copyright (c) 2001 SOMEYA Yoshihiko and KUROSAWA Takahiro. @@ -536,8 +536,8 @@ autri_attach(parent, self, aux) return; } intrstr = pci_intr_string(pc, ih); - sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO, autri_intr, sc, - sc->sc_dev.dv_xname); + sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO | IPL_MPSAFE, + autri_intr, sc, sc->sc_dev.dv_xname); if (sc->sc_ih == NULL) { printf("%s: couldn't establish interrupt", sc->sc_dev.dv_xname); diff --git a/sys/dev/pci/auvia.c b/sys/dev/pci/auvia.c index 474b0378d89..60ebadd28fa 100644 --- a/sys/dev/pci/auvia.c +++ b/sys/dev/pci/auvia.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auvia.c,v 1.50 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: auvia.c,v 1.51 2013/05/24 07:58:46 ratchov Exp $ */ /* $NetBSD: auvia.c,v 1.28 2002/11/04 16:38:49 kent Exp $ */ /*- @@ -298,8 +298,8 @@ auvia_attach(struct device *parent, struct device *self, void *aux) } intrstr = pci_intr_string(pc, ih); - sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO, auvia_intr, sc, - sc->sc_dev.dv_xname); + sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO | IPL_MPSAFE, + auvia_intr, sc, sc->sc_dev.dv_xname); if (sc->sc_ih == NULL) { printf(": couldn't establish interrupt"); if (intrstr != NULL) diff --git a/sys/dev/pci/azalia.c b/sys/dev/pci/azalia.c index 29ae80ea464..a9668679380 100644 --- a/sys/dev/pci/azalia.c +++ b/sys/dev/pci/azalia.c @@ -1,4 +1,4 @@ -/* $OpenBSD: azalia.c,v 1.204 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: azalia.c,v 1.205 2013/05/24 07:58:46 ratchov Exp $ */ /* $NetBSD: azalia.c,v 1.20 2006/05/07 08:31:44 kent Exp $ */ /*- @@ -528,8 +528,8 @@ azalia_pci_attach(struct device *parent, struct device *self, void *aux) return; } interrupt_str = pci_intr_string(pa->pa_pc, ih); - sc->ih = pci_intr_establish(pa->pa_pc, ih, IPL_AUDIO, azalia_intr, - sc, sc->dev.dv_xname); + sc->ih = pci_intr_establish(pa->pa_pc, ih, IPL_AUDIO | IPL_MPSAFE, + azalia_intr, sc, sc->dev.dv_xname); if (sc->ih == NULL) { printf(": can't establish interrupt"); if (interrupt_str != NULL) 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) diff --git a/sys/dev/pci/cs4280.c b/sys/dev/pci/cs4280.c index 357479d221c..8f7fdcaa304 100644 --- a/sys/dev/pci/cs4280.c +++ b/sys/dev/pci/cs4280.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cs4280.c,v 1.42 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: cs4280.c,v 1.43 2013/05/24 07:58:46 ratchov Exp $ */ /* $NetBSD: cs4280.c,v 1.5 2000/06/26 04:56:23 simonb Exp $ */ /* @@ -620,8 +620,8 @@ cs4280_attach(struct device *parent, struct device *self, void *aux) } intrstr = pci_intr_string(pc, ih); - sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO, cs4280_intr, sc, - sc->sc_dev.dv_xname); + sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO | IPL_MPSAFE, + cs4280_intr, sc, sc->sc_dev.dv_xname); if (sc->sc_ih == NULL) { printf(": couldn't establish interrupt"); if (intrstr != NULL) diff --git a/sys/dev/pci/cs4281.c b/sys/dev/pci/cs4281.c index a9462efe027..969a94638df 100644 --- a/sys/dev/pci/cs4281.c +++ b/sys/dev/pci/cs4281.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cs4281.c,v 1.28 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: cs4281.c,v 1.29 2013/05/24 07:58:46 ratchov Exp $ */ /* $Tera: cs4281.c,v 1.18 2000/12/27 14:24:45 tacha Exp $ */ /* @@ -326,8 +326,8 @@ cs4281_attach(parent, self, aux) } intrstr = pci_intr_string(pc, ih); - sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO, cs4281_intr, sc, - sc->sc_dev.dv_xname); + sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO | IPL_MPSAFE, + cs4281_intr, sc, sc->sc_dev.dv_xname); if (sc->sc_ih == NULL) { printf("%s: couldn't establish interrupt",sc->sc_dev.dv_xname); if (intrstr != NULL) diff --git a/sys/dev/pci/eap.c b/sys/dev/pci/eap.c index dc7b7be4dac..886ffb418fa 100644 --- a/sys/dev/pci/eap.c +++ b/sys/dev/pci/eap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: eap.c,v 1.45 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: eap.c,v 1.46 2013/05/24 07:58:46 ratchov Exp $ */ /* $NetBSD: eap.c,v 1.46 2001/09/03 15:07:37 reinoud Exp $ */ /* @@ -497,8 +497,8 @@ eap_attach(struct device *parent, struct device *self, void *aux) return; } intrstr = pci_intr_string(pc, ih); - sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO, eap_intr, sc, - sc->sc_dev.dv_xname); + sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO | IPL_MPSAFE, + eap_intr, sc, sc->sc_dev.dv_xname); if (sc->sc_ih == NULL) { printf(": couldn't establish interrupt"); if (intrstr != NULL) diff --git a/sys/dev/pci/emuxki.c b/sys/dev/pci/emuxki.c index a1733765b05..747c475d159 100644 --- a/sys/dev/pci/emuxki.c +++ b/sys/dev/pci/emuxki.c @@ -1,4 +1,4 @@ -/* $OpenBSD: emuxki.c,v 1.41 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: emuxki.c,v 1.42 2013/05/24 07:58:46 ratchov Exp $ */ /* $NetBSD: emuxki.c,v 1.1 2001/10/17 18:39:41 jdolecek Exp $ */ /*- @@ -454,8 +454,8 @@ emuxki_attach(struct device *parent, struct device *self, void *aux) } intrstr = pci_intr_string(pa->pa_pc, ih); - sc->sc_ih = pci_intr_establish(pa->pa_pc, ih, IPL_AUDIO, emuxki_intr, - sc, sc->sc_dev.dv_xname); + sc->sc_ih = pci_intr_establish(pa->pa_pc, ih, IPL_AUDIO | IPL_MPSAFE, + emuxki_intr, sc, sc->sc_dev.dv_xname); if (sc->sc_ih == NULL) { printf(": can't establish interrupt"); if (intrstr != NULL) diff --git a/sys/dev/pci/envy.c b/sys/dev/pci/envy.c index 430829deea8..40e96594f47 100644 --- a/sys/dev/pci/envy.c +++ b/sys/dev/pci/envy.c @@ -1,4 +1,4 @@ -/* $OpenBSD: envy.c,v 1.55 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: envy.c,v 1.56 2013/05/24 07:58:46 ratchov Exp $ */ /* * Copyright (c) 2007 Alexandre Ratchov <alex@caoua.org> * @@ -1677,7 +1677,7 @@ envyattach(struct device *parent, struct device *self, void *aux) printf(": can't map interrupt\n"); } intrstr = pci_intr_string(sc->pci_pc, ih); - sc->pci_ih = pci_intr_establish(sc->pci_pc, ih, IPL_AUDIO, + sc->pci_ih = pci_intr_establish(sc->pci_pc, ih, IPL_AUDIO | IPL_MPSAFE, envy_intr, sc, sc->dev.dv_xname); if (sc->pci_ih == NULL) { printf(": can't establish interrupt"); diff --git a/sys/dev/pci/esa.c b/sys/dev/pci/esa.c index ddd85bb3617..045c90e6e37 100644 --- a/sys/dev/pci/esa.c +++ b/sys/dev/pci/esa.c @@ -1,4 +1,4 @@ -/* $OpenBSD: esa.c,v 1.26 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: esa.c,v 1.27 2013/05/24 07:58:46 ratchov Exp $ */ /* $NetBSD: esa.c,v 1.12 2002/03/24 14:17:35 jmcneill Exp $ */ /* @@ -1066,8 +1066,8 @@ esa_attach(struct device *parent, struct device *self, void *aux) return; } intrstr = pci_intr_string(pc, ih); - sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO, esa_intr, self, - sc->sc_dev.dv_xname); + sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO | IPL_MPSAFE, + esa_intr, self, sc->sc_dev.dv_xname); if (sc->sc_ih == NULL) { printf(": can't establish interrupt"); if (intrstr != NULL) diff --git a/sys/dev/pci/eso.c b/sys/dev/pci/eso.c index 2153cc41676..df395cd0f92 100644 --- a/sys/dev/pci/eso.c +++ b/sys/dev/pci/eso.c @@ -1,4 +1,4 @@ -/* $OpenBSD: eso.c,v 1.36 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: eso.c,v 1.37 2013/05/24 07:58:46 ratchov Exp $ */ /* $NetBSD: eso.c,v 1.48 2006/12/18 23:13:39 kleink Exp $ */ /* @@ -259,8 +259,8 @@ eso_attach(struct device *parent, struct device *self, void *aux) return; } intrstring = pci_intr_string(pa->pa_pc, ih); - sc->sc_ih = pci_intr_establish(pa->pa_pc, ih, IPL_AUDIO, eso_intr, sc, - sc->sc_dev.dv_xname); + sc->sc_ih = pci_intr_establish(pa->pa_pc, ih, IPL_AUDIO | IPL_MPSAFE, + eso_intr, sc, sc->sc_dev.dv_xname); if (sc->sc_ih == NULL) { printf(", couldn't establish interrupt"); if (intrstring != NULL) diff --git a/sys/dev/pci/fms.c b/sys/dev/pci/fms.c index 20a538782b8..b7bfa4d3827 100644 --- a/sys/dev/pci/fms.c +++ b/sys/dev/pci/fms.c @@ -1,4 +1,4 @@ -/* $OpenBSD: fms.c,v 1.23 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: fms.c,v 1.24 2013/05/24 07:58:46 ratchov Exp $ */ /* $NetBSD: fms.c,v 1.5.4.1 2000/06/30 16:27:50 simonb Exp $ */ /*- @@ -210,8 +210,8 @@ fms_attach(parent, self, aux) } intrstr = pci_intr_string(pc, ih); - sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO, fms_intr, sc, - sc->sc_dev.dv_xname); + sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO | IPL_MPSAFE, + fms_intr, sc, sc->sc_dev.dv_xname); if (sc->sc_ih == NULL) { printf(": couldn't establish interrupt"); if (intrstr != NULL) diff --git a/sys/dev/pci/maestro.c b/sys/dev/pci/maestro.c index 1d584d7c511..4d7c7aa7689 100644 --- a/sys/dev/pci/maestro.c +++ b/sys/dev/pci/maestro.c @@ -1,4 +1,4 @@ -/* $OpenBSD: maestro.c,v 1.34 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: maestro.c,v 1.35 2013/05/24 07:58:46 ratchov Exp $ */ /* $FreeBSD: /c/ncvs/src/sys/dev/sound/pci/maestro.c,v 1.3 2000/11/21 12:22:11 julian Exp $ */ /* * FreeBSD's ESS Agogo/Maestro driver @@ -645,8 +645,8 @@ maestro_attach(parent, self, aux) return; } intrstr = pci_intr_string(pc, ih); - sc->ih = pci_intr_establish(pc, ih, IPL_AUDIO, maestro_intr, sc, - sc->dev.dv_xname); + sc->ih = pci_intr_establish(pc, ih, IPL_AUDIO | IPL_MPSAFE, + maestro_intr, sc, sc->dev.dv_xname); if (sc->ih == NULL) { printf(": can't establish interrupt"); if (intrstr != NULL) diff --git a/sys/dev/pci/neo.c b/sys/dev/pci/neo.c index d6d3c810c71..b90f144b231 100644 --- a/sys/dev/pci/neo.c +++ b/sys/dev/pci/neo.c @@ -1,4 +1,4 @@ -/* $OpenBSD: neo.c,v 1.27 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: neo.c,v 1.28 2013/05/24 07:58:46 ratchov Exp $ */ /* * Copyright (c) 1999 Cameron Grant <gandalf@vilnya.demon.co.uk> @@ -591,8 +591,8 @@ neo_attach(parent, self, aux) return; } intrstr = pci_intr_string(pc, ih); - sc->ih = pci_intr_establish(pc, ih, IPL_AUDIO, neo_intr, sc, - sc->dev.dv_xname); + sc->ih = pci_intr_establish(pc, ih, IPL_AUDIO | IPL_MPSAFE, + neo_intr, sc, sc->dev.dv_xname); if (sc->ih == NULL) { printf("\n%s: couldn't establish interrupt", diff --git a/sys/dev/pci/sv.c b/sys/dev/pci/sv.c index 27b2a4413f3..712ef6369fe 100644 --- a/sys/dev/pci/sv.c +++ b/sys/dev/pci/sv.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sv.c,v 1.28 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: sv.c,v 1.29 2013/05/24 07:58:47 ratchov Exp $ */ /* * Copyright (c) 1998 Constantine Paul Sapuntzakis @@ -377,8 +377,8 @@ sv_attach(parent, self, aux) return; } intrstr = pci_intr_string(pc, ih); - sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO, sv_intr, sc, - sc->sc_dev.dv_xname); + sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO | IPL_MPSAFE, + sv_intr, sc, sc->sc_dev.dv_xname); if (sc->sc_ih == NULL) { printf(": couldn't establish interrupt"); if (intrstr != NULL) diff --git a/sys/dev/pci/yds.c b/sys/dev/pci/yds.c index a099677fc35..7b75622215c 100644 --- a/sys/dev/pci/yds.c +++ b/sys/dev/pci/yds.c @@ -1,4 +1,4 @@ -/* $OpenBSD: yds.c,v 1.42 2013/05/15 08:29:24 ratchov Exp $ */ +/* $OpenBSD: yds.c,v 1.43 2013/05/24 07:58:47 ratchov Exp $ */ /* $NetBSD: yds.c,v 1.5 2001/05/21 23:55:04 minoura Exp $ */ /* @@ -688,8 +688,8 @@ yds_attach(struct device *parent, struct device *self, void *aux) return; } intrstr = pci_intr_string(pc, ih); - sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO, yds_intr, sc, - self->dv_xname); + sc->sc_ih = pci_intr_establish(pc, ih, IPL_AUDIO | IPL_MPSAFE, + yds_intr, sc, self->dv_xname); if (sc->sc_ih == NULL) { printf(": couldn't establish interrupt"); if (intrstr != NULL) |