Patch "ALSA: seq: ump: Fix seq port updates per FB info notify" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ALSA: seq: ump: Fix seq port updates per FB info notify

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     alsa-seq-ump-fix-seq-port-updates-per-fb-info-notify.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 33fcafe6ec70516212ad324486e98fe8a901d05b
Author: Takashi Iwai <tiwai@xxxxxxx>
Date:   Thu Nov 28 18:04:22 2024 +0100

    ALSA: seq: ump: Fix seq port updates per FB info notify
    
    [ Upstream commit aaa55faa2495320e44bc643a917c701f2cc89ee7 ]
    
    update_port_infos() is called when a UMP FB Info update notification
    is received, and this function is supposed to update the attributes of
    the corresponding sequencer port.  However, the function had a few
    issues and it brought to the incorrect states.  Namely:
    
    - It tried to get a wrong sequencer info for the update without
      correcting the port number with the group-offset 1
    - The loop exited immediately when a sequencer port isn't present;
      this ended up with the truncation if a sequencer port in the middle
      goes away
    
    This patch addresses those bugs.
    
    Fixes: 4a16a3af0571 ("ALSA: seq: ump: Handle FB info update")
    Link: https://patch.msgid.link/20241128170423.23351-1-tiwai@xxxxxxx
    Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/sound/core/seq/seq_ump_client.c b/sound/core/seq/seq_ump_client.c
index 91773f8ca7828..1c6c49560ae12 100644
--- a/sound/core/seq/seq_ump_client.c
+++ b/sound/core/seq/seq_ump_client.c
@@ -258,12 +258,12 @@ static void update_port_infos(struct seq_ump_client *client)
 			continue;
 
 		old->addr.client = client->seq_client;
-		old->addr.port = i;
+		old->addr.port = ump_group_to_seq_port(i);
 		err = snd_seq_kernel_client_ctl(client->seq_client,
 						SNDRV_SEQ_IOCTL_GET_PORT_INFO,
 						old);
 		if (err < 0)
-			return;
+			continue;
 		fill_port_info(new, client, &client->ump->groups[i]);
 		if (old->capability == new->capability &&
 		    !strcmp(old->name, new->name))
@@ -272,7 +272,7 @@ static void update_port_infos(struct seq_ump_client *client)
 						SNDRV_SEQ_IOCTL_SET_PORT_INFO,
 						new);
 		if (err < 0)
-			return;
+			continue;
 		/* notify to system port */
 		snd_seq_system_client_ev_port_change(client->seq_client, i);
 	}




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux