• Takashi Iwai's avatar
    ALSA: control: Take controls_rwsem lock in snd_ctl_remove() · 192c4ccc
    Takashi Iwai authored
    So far, snd_ctl_remove() requires its caller to take
    card->controls_rwsem manually before the call for avoiding possible
    races.  However, many callers don't care and miss the locking.
    
    Basically it's cumbersome and error-prone to enforce it to each
    caller.  Moreover, card->controls_rwsem is a field that should be used
    only by internal or proper helpers, and it's not to be touched at
    random external places.
    
    This patch is an attempt to make those calls more consistent: now
    snd_ctl_remove() takes the card->controls_rwsem internally, just like
    other API functions for kctls.  Since a few callers already take the
    controls_rwsem locks, the patch removes those locks at the same time,
    too.
    
    Link: https://lore.kernel.org/r/20230718141304.1032-5-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    192c4ccc
control.c 65.6 KB