ALSA: hdsp - Ignore MIDI and PCM events in interrupts until initialized
authorTakashi Iwai <tiwai@suse.de>
Thu, 5 Mar 2009 08:37:40 +0000 (09:37 +0100)
committerTakashi Iwai <tiwai@suse.de>
Thu, 5 Mar 2009 08:37:40 +0000 (09:37 +0100)
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>
sound/pci/rme9652/hdsp.c

index dc65fe1c9c652e655d257cac99dd157e96748977..314e73531bd176121dead403390c1cdfca4dc13f 100644 (file)
@@ -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);