Re: [PATCH] ALSA: hda: Fix connection list comparison in proc output

Takashi Iwai <[email protected]>
Newsgroups gmane.linux.sound,gmane.linux.kernel
Message-ID <[email protected]>
On Tue, 18 Aug 2026 10:38:08 +0200,
raoxu wrote:
> 
> From: Xu Rao <[email protected]>
> 
> print_conn_list() compares the raw hardware connection list with the
> connection list cached by the HDA driver.  When they differ, it prints an
> additional "In-driver Connection" line so that /proc/asound/card*/codec#*
> shows the topology actually used by the driver.
> 
> The comparison currently passes conn_len directly to memcmp().  However,
> conn_len is a number of connection-list entries, while memcmp() expects a
> size in bytes.  Both list and conn are arrays of hda_nid_t, which is u16,
> so only half of the connection data is compared.
> 
> For example, for two-entry lists such as:
> 
>   hardware: 0x0c 0x0d
>   cached:   0x0c 0x0e
> 
> conn_len is 2, and the current comparison checks only the first hda_nid_t.
> The lists are therefore incorrectly treated as identical even though the
> second connection differs.
> 
> This can happen legitimately when codec fixups replace a cached connection
> list with snd_hda_override_conn_list().  The codec routing used by the
> driver is not affected, but the proc output can hide the overridden
> driver-visible routing and provide misleading topology information during
> codec debugging.
> 
> Convert the entry count to a byte size so that memcmp() covers the
> complete connection list.
> 
> Fixes: 8b2c7a5c404d ("ALSA: hda - Add In-driver connection info")
> Signed-off-by: Xu Rao <[email protected]>

Thanks, applied now.


Takashi
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.