summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2009-03-05 09:37:40 +0100
committerTakashi Iwai <tiwai@suse.de>2009-03-05 09:37:40 +0100
commitc2503cd3be9eacb1dd06ec5b6fba8bb06aac12a8 (patch)
treefe2df3f4a1753b9b35c16f1a6f716e0562cf140b
parentf9ffc5d6f0161b66202f2df9ecc42d1be241020d (diff)
downloadop-kernel-dev-c2503cd3be9eacb1dd06ec5b6fba8bb06aac12a8.zip
op-kernel-dev-c2503cd3be9eacb1dd06ec5b6fba8bb06aac12a8.tar.gz
ALSA: hdsp - Ignore MIDI and PCM events in interrupts until initialized
Ignore MIDI and PCM events in the interrupt handler until the device gets initialized properly. Otherwise you may get kernel panic by the access to uninitialized devices via hotplugging. Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/rme9652/hdsp.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c
index dc65fe1..314e735 100644
--- a/sound/pci/rme9652/hdsp.c
+++ b/sound/pci/rme9652/hdsp.c
@@ -3740,6 +3740,9 @@ static irqreturn_t snd_hdsp_interrupt(int irq, void *dev_id)
midi0status = hdsp_read (hdsp, HDSP_midiStatusIn0) & 0xff;
midi1status = hdsp_read (hdsp, HDSP_midiStatusIn1) & 0xff;
+ if (!(hdsp->state & HDSP_InitializationComplete))
+ return IRQ_HANDLED;
+
if (audio) {
if (hdsp->capture_substream)
snd_pcm_period_elapsed(hdsp->pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream);
OpenPOWER on IntegriCloud