diff options
author | Mark Hills <mark@pogo.org.uk> | 2009-10-24 13:59:36 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-10-30 12:29:42 +0100 |
commit | ac9dd9d384b018f1e1c5a9a2686ab5605ce55818 (patch) | |
tree | 4fad8ff7d5702231f0e01a4bd568d26b934223a1 | |
parent | ALSA: snd-usb-caiaq: Missing lock around use of buffer positions (diff) | |
download | linux-ac9dd9d384b018f1e1c5a9a2686ab5605ce55818.tar.xz linux-ac9dd9d384b018f1e1c5a9a2686ab5605ce55818.zip |
ALSA: snd-usb-caiaq: Lock on stream start/unpause
Fix a bug which can result in white noise from the driver after stream
start or unpause.
Signed-off-by: Mark Hills <mark@pogo.org.uk>
Acked-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | sound/usb/caiaq/audio.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sound/usb/caiaq/audio.c b/sound/usb/caiaq/audio.c index e76017cd5acf..86b2c3b92df5 100644 --- a/sound/usb/caiaq/audio.c +++ b/sound/usb/caiaq/audio.c @@ -62,10 +62,14 @@ static void activate_substream(struct snd_usb_caiaqdev *dev, struct snd_pcm_substream *sub) { + spin_lock(&dev->spinlock); + if (sub->stream == SNDRV_PCM_STREAM_PLAYBACK) dev->sub_playback[sub->number] = sub; else dev->sub_capture[sub->number] = sub; + + spin_unlock(&dev->spinlock); } static void |