ALSA: core: pcm: simplify locking for timers

Fix sparse warning:

sound/core/pcm.c:999:9: warning: context imbalance in
'snd_pcm_detach_substream' - different lock contexts for basic block

There's no real reason to test the same thing twice, and it's simpler
have linear sequences.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200902212133.30964-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Pierre-Louis Bossart 2020-09-02 16:21:16 -05:00 committed by Takashi Iwai
parent 685a04a537
commit 931522b908

View File

@ -991,11 +991,13 @@ void snd_pcm_detach_substream(struct snd_pcm_substream *substream)
PAGE_ALIGN(sizeof(struct snd_pcm_mmap_control)));
kfree(runtime->hw_constraints.rules);
/* Avoid concurrent access to runtime via PCM timer interface */
if (substream->timer)
if (substream->timer) {
spin_lock_irq(&substream->timer->lock);
substream->runtime = NULL;
if (substream->timer)
spin_unlock_irq(&substream->timer->lock);
} else {
substream->runtime = NULL;
}
kfree(runtime);
put_pid(substream->pid);
substream->pid = NULL;