diff options
author | Takashi Iwai <tiwai@suse.de> | 2009-03-05 09:37:40 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-03-05 09:37:40 +0100 |
commit | c2503cd3be9eacb1dd06ec5b6fba8bb06aac12a8 (patch) | |
tree | fe2df3f4a1753b9b35c16f1a6f716e0562cf140b | |
parent | f9ffc5d6f0161b66202f2df9ecc42d1be241020d (diff) | |
download | linux-3.10-c2503cd3be9eacb1dd06ec5b6fba8bb06aac12a8.tar.gz linux-3.10-c2503cd3be9eacb1dd06ec5b6fba8bb06aac12a8.tar.bz2 linux-3.10-c2503cd3be9eacb1dd06ec5b6fba8bb06aac12a8.zip |
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.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c index dc65fe1c9c6..314e73531bd 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); |