aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStas Sergeev <stsp@aknet.ru>2008-03-12 08:12:15 -0400
committerTakashi Iwai <tiwai@suse.de>2008-04-24 06:00:24 -0400
commit1bc1f30565b561bafc51725fce336aec59029437 (patch)
tree2bde6214d669f84dc0ae73b1d1b1259090190f41
parentbb9f76cd5909b9da6b4d31b55a4086cc35614fe0 (diff)
[ALSA] pcsp: locking fix
pcsp: locking fix. Signed-off-by: Stas Sergeev <stsp@aknet.ru> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/drivers/pcsp/pcsp.c5
-rw-r--r--sound/drivers/pcsp/pcsp_lib.c2
2 files changed, 4 insertions, 3 deletions
diff --git a/sound/drivers/pcsp/pcsp.c b/sound/drivers/pcsp/pcsp.c
index 547005cb0942..ac57e87d01bc 100644
--- a/sound/drivers/pcsp/pcsp.c
+++ b/sound/drivers/pcsp/pcsp.c
@@ -191,11 +191,10 @@ static int __devexit pcsp_remove(struct platform_device *dev)
191 191
192static void pcsp_stop_beep(struct snd_pcsp *chip) 192static void pcsp_stop_beep(struct snd_pcsp *chip)
193{ 193{
194 unsigned long flags; 194 spin_lock_irq(&chip->substream_lock);
195 spin_lock_irqsave(&chip->substream_lock, flags);
196 if (!chip->playback_substream) 195 if (!chip->playback_substream)
197 pcspkr_stop_sound(); 196 pcspkr_stop_sound();
198 spin_unlock_irqrestore(&chip->substream_lock, flags); 197 spin_unlock_irq(&chip->substream_lock);
199} 198}
200 199
201static int pcsp_suspend(struct platform_device *dev, pm_message_t state) 200static int pcsp_suspend(struct platform_device *dev, pm_message_t state)
diff --git a/sound/drivers/pcsp/pcsp_lib.c b/sound/drivers/pcsp/pcsp_lib.c
index a302756eac7c..54253e9b4b02 100644
--- a/sound/drivers/pcsp/pcsp_lib.c
+++ b/sound/drivers/pcsp/pcsp_lib.c
@@ -305,7 +305,9 @@ static int snd_pcsp_playback_open(struct snd_pcm_substream *substream)
305 return -EBUSY; 305 return -EBUSY;
306 } 306 }
307 runtime->hw = snd_pcsp_playback; 307 runtime->hw = snd_pcsp_playback;
308 spin_lock_irq(&chip->substream_lock);
308 chip->playback_substream = substream; 309 chip->playback_substream = substream;
310 spin_unlock_irq(&chip->substream_lock);
309 return 0; 311 return 0;
310} 312}
311 313