lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 239/563] ALSA: jack: Add missing rwsem around snd_ctl_remove() calls
    Date
    From: Takashi Iwai <tiwai@suse.de>

    [ Upstream commit 06764dc931848c3a9bc01a63bbf76a605408bb54 ]

    snd_ctl_remove() has to be called with card->controls_rwsem held (when
    called after the card instantiation). This patch add the missing
    rwsem calls around it.

    Fixes: 9058cbe1eed2 ("ALSA: jack: implement kctl creating for jack devices")
    Link: https://lore.kernel.org/r/20211116071314.15065-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/core/jack.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/sound/core/jack.c b/sound/core/jack.c
    index d6502dff247a8..dc2e06ae24149 100644
    --- a/sound/core/jack.c
    +++ b/sound/core/jack.c
    @@ -54,10 +54,13 @@ static int snd_jack_dev_free(struct snd_device *device)
    struct snd_card *card = device->card;
    struct snd_jack_kctl *jack_kctl, *tmp_jack_kctl;

    + down_write(&card->controls_rwsem);
    list_for_each_entry_safe(jack_kctl, tmp_jack_kctl, &jack->kctl_list, list) {
    list_del_init(&jack_kctl->list);
    snd_ctl_remove(card, jack_kctl->kctl);
    }
    + up_write(&card->controls_rwsem);
    +
    if (jack->private_free)
    jack->private_free(jack);

    --
    2.34.1


    \
     
     \ /
      Last update: 2022-01-24 22:40    [W:2.547 / U:1.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site