diff options
| author | Stas Sergeev <stsp@aknet.ru> | 2008-03-12 13:12:15 +0100 | 
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2008-04-24 12:00:24 +0200 | 
| commit | 1bc1f30565b561bafc51725fce336aec59029437 (patch) | |
| tree | 2bde6214d669f84dc0ae73b1d1b1259090190f41 /sound/drivers/pcsp | |
| parent | bb9f76cd5909b9da6b4d31b55a4086cc35614fe0 (diff) | |
| download | linux-1bc1f30565b561bafc51725fce336aec59029437.tar.bz2 | |
[ALSA] pcsp: locking fix
pcsp: locking fix.
Signed-off-by: Stas Sergeev <stsp@aknet.ru>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/drivers/pcsp')
| -rw-r--r-- | sound/drivers/pcsp/pcsp.c | 5 | ||||
| -rw-r--r-- | sound/drivers/pcsp/pcsp_lib.c | 2 | 
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)  static void pcsp_stop_beep(struct snd_pcsp *chip)  { -	unsigned long flags; -	spin_lock_irqsave(&chip->substream_lock, flags); +	spin_lock_irq(&chip->substream_lock);  	if (!chip->playback_substream)  		pcspkr_stop_sound(); -	spin_unlock_irqrestore(&chip->substream_lock, flags); +	spin_unlock_irq(&chip->substream_lock);  }  static 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)  		return -EBUSY;  	}  	runtime->hw = snd_pcsp_playback; +	spin_lock_irq(&chip->substream_lock);  	chip->playback_substream = substream; +	spin_unlock_irq(&chip->substream_lock);  	return 0;  } |