summaryrefslogtreecommitdiff
path: root/sys
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
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')
-rw-r--r--sys/dev/isa/ess.c8
-rw-r--r--sys/dev/isa/gus.c7
-rw-r--r--sys/dev/isa/mpu_isapnp.c6
-rw-r--r--sys/dev/isa/pas.c7
-rw-r--r--sys/dev/isa/sb.c7
-rw-r--r--sys/dev/isa/wss.c5
-rw-r--r--sys/dev/isa/ym.c7
-rw-r--r--sys/dev/pci/auacer.c4
-rw-r--r--sys/dev/pci/auglx.c6
-rw-r--r--sys/dev/pci/auich.c6
-rw-r--r--sys/dev/pci/auixp.c6
-rw-r--r--sys/dev/pci/autri.c6
-rw-r--r--sys/dev/pci/auvia.c6
-rw-r--r--sys/dev/pci/azalia.c6
-rw-r--r--sys/dev/pci/cmpci.c6
-rw-r--r--sys/dev/pci/cs4280.c6
-rw-r--r--sys/dev/pci/cs4281.c6
-rw-r--r--sys/dev/pci/eap.c6
-rw-r--r--sys/dev/pci/emuxki.c6
-rw-r--r--sys/dev/pci/envy.c4
-rw-r--r--sys/dev/pci/esa.c6
-rw-r--r--sys/dev/pci/eso.c6
-rw-r--r--sys/dev/pci/fms.c6
-rw-r--r--sys/dev/pci/maestro.c6
-rw-r--r--sys/dev/pci/neo.c6
-rw-r--r--sys/dev/pci/sv.c6
-rw-r--r--sys/dev/pci/yds.c6
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)