]> git.baikalelectronics.ru Git - kernel.git/commit
ALSA: aloop: Remove redundant locking in timer open function
authorAndrew Gabbasov <andrew_gabbasov@mentor.com>
Fri, 22 Nov 2019 17:52:17 +0000 (11:52 -0600)
committerTakashi Iwai <tiwai@suse.de>
Fri, 22 Nov 2019 18:11:23 +0000 (19:11 +0100)
commitb479c60b770f0fb05f6a02c8f0185ec01c2cde77
treedd28c629626c8b0347a50113077bc53f9f8781af
parente0ea6b2264b312c1dc141fdb074a303bfaec9ddd
ALSA: aloop: Remove redundant locking in timer open function

loopback_parse_timer_id() uses snd_card_ref(), that can lock on mutex,
also snd_timer_instance_new() uses non-atomic allocation, that can sleep.
So, both functions can not be called from loopback_snd_timer_open()
with cable->lock spinlock locked.

Moreover, most part of loopback_snd_timer_open() function body works
when the opposite stream of the same cable does not yet exist, and
the current stream is not yet completely open and can't be running,
so existing locking of loopback->cable_lock mutex is enough to protect
from conflicts with simultaneous opening or closing.
Locking of cable->lock spinlock is not needed in this case.

Fixes: 92a19a3fbdee ("ALSA: aloop: Support selection of snd_timer instead of jiffies")
Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Link: https://lore.kernel.org/r/20191122175218.17187-1-andrew_gabbasov@mentor.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/drivers/aloop.c