Commit 9ff3483e authored by Takashi Sakamoto's avatar Takashi Sakamoto Committed by Takashi Iwai

ALSA: firewire-motu: fix double unlocked 'motu->mutex'

Mutex is doubly unlocked in some error path of pcm.open. This commit fixes
ALSA firewire-motu driver in Linux kernel v5.5.
Reported-by: default avatarkbuild test robot <lkp@intel.com>
Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Fixes: 3fd80b20 ("ALSA: firewire-motu: use the same size of period for PCM substream in AMDTP streams")
Fixes: 0f5482e7 ("ALSA: firewire-motu: share PCM buffer size for both direction")
Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
Link: https://lore.kernel.org/r/20191208232226.6685-1-o-takashi@sakamocchi.jpSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent c08f0a92
...@@ -177,20 +177,16 @@ static int pcm_open(struct snd_pcm_substream *substream) ...@@ -177,20 +177,16 @@ static int pcm_open(struct snd_pcm_substream *substream)
err = snd_pcm_hw_constraint_minmax(substream->runtime, err = snd_pcm_hw_constraint_minmax(substream->runtime,
SNDRV_PCM_HW_PARAM_PERIOD_SIZE, SNDRV_PCM_HW_PARAM_PERIOD_SIZE,
frames_per_period, frames_per_period); frames_per_period, frames_per_period);
if (err < 0) { if (err < 0)
mutex_unlock(&motu->mutex);
goto err_locked; goto err_locked;
}
err = snd_pcm_hw_constraint_minmax(substream->runtime, err = snd_pcm_hw_constraint_minmax(substream->runtime,
SNDRV_PCM_HW_PARAM_BUFFER_SIZE, SNDRV_PCM_HW_PARAM_BUFFER_SIZE,
frames_per_buffer, frames_per_buffer); frames_per_buffer, frames_per_buffer);
if (err < 0) { if (err < 0)
mutex_unlock(&motu->mutex);
goto err_locked; goto err_locked;
} }
} }
}
snd_pcm_set_sync(substream); snd_pcm_set_sync(substream);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment