[alsa-devel] lock-up when loading desktop
Arthur Marsh
arthur.marsh at internode.on.net
Tue Oct 14 09:01:48 CEST 2014
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
Regards,
Arthur.
More information about the Alsa-devel
mailing list