• Takashi Sakamoto's avatar
    ALSA: control: queue events within locking of controls_rwsem for ELEM_WRITE operation · 7b42cfaf
    Takashi Sakamoto authored
    Any control event is queued by a call of snd_ctl_notify(). This function
    adds the event to each queue of opened file data corresponding to ALSA
    control character devices. This function acquired two types of lock; a
    counting semaphore for a list of the opened file data and a spinlock for
    card data opened by the file. Typically, this function is called after
    acquiring a counting semaphore for a list of elements in the card data.
    
    In current implementation of a handler for ELEM_WRITE request, the
    function is called after releasing the semaphore for a list of elements
    in the card data. This release is not necessarily needed.
    
    This commit removes the release to call the function within the critical
    section so that later commits are simple.
    Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    7b42cfaf
control.c 50.9 KB