summaryrefslogtreecommitdiffstats
path: root/kernel/sound/usb/line6/pcm.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/sound/usb/line6/pcm.c')
-rw-r--r--kernel/sound/usb/line6/pcm.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/sound/usb/line6/pcm.c b/kernel/sound/usb/line6/pcm.c
index 204cc074a..41aa3355e 100644
--- a/kernel/sound/usb/line6/pcm.c
+++ b/kernel/sound/usb/line6/pcm.c
@@ -55,7 +55,6 @@ static int snd_line6_impulse_volume_put(struct snd_kcontrol *kcontrol,
err = line6_pcm_acquire(line6pcm, LINE6_STREAM_IMPULSE);
if (err < 0) {
line6pcm->impulse_volume = 0;
- line6_pcm_release(line6pcm, LINE6_STREAM_IMPULSE);
return err;
}
} else {
@@ -211,7 +210,9 @@ static void line6_stream_stop(struct snd_line6_pcm *line6pcm, int direction,
spin_lock_irqsave(&pstr->lock, flags);
clear_bit(type, &pstr->running);
if (!pstr->running) {
+ spin_unlock_irqrestore(&pstr->lock, flags);
line6_unlink_audio_urbs(line6pcm, pstr);
+ spin_lock_irqsave(&pstr->lock, flags);
if (direction == SNDRV_PCM_STREAM_CAPTURE) {
line6pcm->prev_fbuf = NULL;
line6pcm->prev_fsize = 0;