[alsa-devel] lock-up when loading desktop

Takashi Iwai tiwai at suse.de
Tue Oct 14 09:12:13 CEST 2014


At Tue, 14 Oct 2014 17:31:48 +1030,
Arthur Marsh wrote:
> 
> 
> 
> Arthur Marsh wrote, on 14/10/14 13:56:
> >> ---
> >> diff --git a/sound/pci/emu10k1/emu10k1_callback.c
> >> b/sound/pci/emu10k1/emu10k1_callback.c
> >> index 3f3ef38d9b6e..874cd76c7b7f 100644
> >> --- a/sound/pci/emu10k1/emu10k1_callback.c
> >> +++ b/sound/pci/emu10k1/emu10k1_callback.c
> >> @@ -85,6 +85,8 @@ snd_emu10k1_ops_setup(struct snd_emux *emux)
> >>    * get more voice for pcm
> >>    *
> >>    * terminate most inactive voice and give it as a pcm voice.
> >> + *
> >> + * voice_lock is already held.
> >>    */
> >>   int
> >>   snd_emu10k1_synth_get_voice(struct snd_emu10k1 *hw)
> >> @@ -92,12 +94,10 @@ snd_emu10k1_synth_get_voice(struct snd_emu10k1 *hw)
> >>       struct snd_emux *emu;
> >>       struct snd_emux_voice *vp;
> >>       struct best_voice best[V_END];
> >> -    unsigned long flags;
> >>       int i;
> >>
> >>       emu = hw->synth;
> >>
> >> -    spin_lock_irqsave(&emu->voice_lock, flags);
> >>       lookup_voices(emu, hw, best, 1); /* no OFF voices */
> >>       for (i = 0; i < V_END; i++) {
> >>           if (best[i].voice >= 0) {
> >> @@ -113,11 +113,9 @@ snd_emu10k1_synth_get_voice(struct snd_emu10k1 *hw)
> >>               vp->emu->num_voices--;
> >>               vp->ch = -1;
> >>               vp->state = SNDRV_EMUX_ST_OFF;
> >> -            spin_unlock_irqrestore(&emu->voice_lock, flags);
> >>               return ch;
> >>           }
> >>       }
> >> -    spin_unlock_irqrestore(&emu->voice_lock, flags);
> >>
> >>       /* not found */
> >>       return -ENOMEM;
> >>
> >
> > I'll apply the above patch only first and report the results.
> >
> > Thanks again,
> >
> > Arthur.
> 
> With only the above emu10k1_callback.c patch and not the pcm_native.c 
> patch, I experience a lock-up when running alsa-info.sh

OK, good to know.  I'll put proper comments about it.


thanks,

Takashi


More information about the Alsa-devel mailing list