ALSA: timer: Fix the breakage of slave link open
A silly mistake was made while applying the fix for potential races in commit6a34367e52
("ALSA: timer: Fix possible race at assigning a timer instance"): when a slave PCM is opened and succeeds, it doesn't return but proceeds to the master timer open code instead. Plug the hole and beautify a bit. Fixes:6a34367e52
("ALSA: timer: Fix possible race at assigning a timer instance") Reported-by: syzbot+4476917c053f60112c99@syzkaller.appspotmail.com Link: https://lore.kernel.org/r/20191111173642.6093-1-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
2bc1e1fdd0
commit
0c4f09ceec
|
@ -268,8 +268,7 @@ int snd_timer_open(struct snd_timer_instance *timeri,
|
|||
list_add_tail(&timeri->open_list, &snd_timer_slave_list);
|
||||
num_slaves++;
|
||||
err = snd_timer_check_slave(timeri);
|
||||
if (err < 0)
|
||||
goto close;
|
||||
goto list_added;
|
||||
}
|
||||
|
||||
/* open a master instance */
|
||||
|
@ -324,7 +323,7 @@ int snd_timer_open(struct snd_timer_instance *timeri,
|
|||
list_add_tail(&timeri->open_list, &timer->open_list_head);
|
||||
timer->num_instances++;
|
||||
err = snd_timer_check_master(timeri);
|
||||
close:
|
||||
list_added:
|
||||
if (err < 0)
|
||||
snd_timer_close_locked(timeri, &card_dev_to_put);
|
||||
|
||||
|
|
Loading…
Reference in New Issue