Przeglądaj źródła

[ALSA] pcsp: locking fix

pcsp: locking fix.

Signed-off-by: Stas Sergeev <stsp@aknet.ru>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Stas Sergeev 17 lat temu
rodzic
commit
1bc1f30565
2 zmienionych plików z 4 dodań i 3 usunięć
  1. 2 3
      sound/drivers/pcsp/pcsp.c
  2. 2 0
      sound/drivers/pcsp/pcsp_lib.c

+ 2 - 3
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)

+ 2 - 0
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;
 }