Commit 5e818ac2 authored by Takashi Sakamoto's avatar Takashi Sakamoto Committed by Takashi Iwai
Browse files

ALSA: bebob: change the range of critical section for stream data in PCM.hw_free callback



The operation of duplex streams should be in critical section.

Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 73f7864e
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -213,14 +213,15 @@ static int pcm_hw_free(struct snd_pcm_substream *substream)
{
	struct snd_bebob *bebob = substream->private_data;

	if (substream->runtime->status->state != SNDRV_PCM_STATE_OPEN) {
	mutex_lock(&bebob->mutex);

	if (substream->runtime->status->state != SNDRV_PCM_STATE_OPEN)
		bebob->substreams_counter--;
		mutex_unlock(&bebob->mutex);
	}

	snd_bebob_stream_stop_duplex(bebob);

	mutex_unlock(&bebob->mutex);

	return snd_pcm_lib_free_vmalloc_buffer(substream);
}