lkml.org 
[lkml]   [2022]   [Oct]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 003/530] ALSA: rawmidi: Drop register_mutex in snd_rawmidi_free()
    Date
    From: Takashi Iwai <tiwai@suse.de>

    commit a70aef7982b012e86dfd39fbb235e76a21ae778a upstream.

    The register_mutex taken around the dev_unregister callback call in
    snd_rawmidi_free() may potentially lead to a mutex deadlock, when OSS
    emulation and a hot unplug are involved.

    Since the mutex doesn't protect the actual race (as the registration
    itself is already protected by another means), let's drop it.

    Link: https://lore.kernel.org/r/CAB7eexJP7w1B0mVgDF0dQ+gWor7UdkiwPczmL7pn91xx8xpzOA@mail.gmail.com
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20221011070147.7611-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    sound/core/rawmidi.c | 2 --
    1 file changed, 2 deletions(-)

    --- a/sound/core/rawmidi.c
    +++ b/sound/core/rawmidi.c
    @@ -1835,10 +1835,8 @@ static int snd_rawmidi_free(struct snd_r

    snd_info_free_entry(rmidi->proc_entry);
    rmidi->proc_entry = NULL;
    - mutex_lock(&register_mutex);
    if (rmidi->ops && rmidi->ops->dev_unregister)
    rmidi->ops->dev_unregister(rmidi);
    - mutex_unlock(&register_mutex);

    snd_rawmidi_free_substreams(&rmidi->streams[SNDRV_RAWMIDI_STREAM_INPUT]);
    snd_rawmidi_free_substreams(&rmidi->streams[SNDRV_RAWMIDI_STREAM_OUTPUT]);

    \
     
     \ /
      Last update: 2022-10-24 16:08    [W:4.042 / U:22.636 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site