From: Takashi Iwai Date: Fri, 7 Mar 2025 08:42:43 +0000 (+0100) Subject: ALSA: seq: Avoid client data changes during proc reads X-Git-Tag: v6.15-rc1~173^2~21 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ef749c8d9573d256da139b6ebccceb678ec00eaa;p=thirdparty%2Flinux.git ALSA: seq: Avoid client data changes during proc reads The proc read of each client should protect against the concurrent data changes to keep the data consistent; although they are supposed to be safe and won't crash things, it doesn't guarantee the consistency between the read values. Take client->ioctl_mutex for protecting against the concurrent changes. Link: https://patch.msgid.link/20250307084246.29271-2-tiwai@suse.de Signed-off-by: Takashi Iwai --- diff --git a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c index 659494e00c513..fe7cd0649c986 100644 --- a/sound/core/seq/seq_clientmgr.c +++ b/sound/core/seq/seq_clientmgr.c @@ -2706,6 +2706,7 @@ void snd_seq_info_clients_read(struct snd_info_entry *entry, continue; } + mutex_lock(&client->ioctl_mutex); snd_iprintf(buffer, "Client %3d : \"%s\" [%s %s]\n", c, client->name, client->type == USER_CLIENT ? "User" : "Kernel", @@ -2723,6 +2724,7 @@ void snd_seq_info_clients_read(struct snd_info_entry *entry, snd_iprintf(buffer, " Input pool :\n"); snd_seq_info_pool(buffer, client->data.user.fifo->pool, " "); } + mutex_unlock(&client->ioctl_mutex); snd_seq_client_unlock(client); } }