Re: [PATCH] ALSA: sound: Increase max size of components field

From: Takashi Iwai

Date: Mon Oct 27 2025 - 05:07:20 EST


On Thu, 23 Oct 2025 13:56:26 +0200,
Jaroslav Kysela wrote:
>
> On 10/23/25 11:27, Maciej Strozek wrote:
> > The components field of snd_card can run out of space in new systems which
> > use many audio devices, hence increase its size to 256 bytes.
>
> > @@ -1069,7 +1069,7 @@ struct snd_ctl_card_info {
> > unsigned char longname[80]; /* name + info text about soundcard */
> > unsigned char reserved_[16]; /* reserved for future (was ID of mixer) */
> > unsigned char mixername[80]; /* visual mixer identification */
> > - unsigned char components[128]; /* card components / fine identification, delimited with one space (AC97 etc..) */
> > + unsigned char components[256]; /* card components / fine identification, delimited with one space (AC97 etc..) */
> Unfortunately, this change will introduce kABI breakage (ioctl number
> change - structure size).
>
> You can probably define another struct snd_ctl_card_info and
> SNDRV_CTL_IOCTL_CARD_INFO and update alsa-lib to use it depending the
> protocol version.
>
> Or, we may introduce a separate ioctl for the components string. The
> stripped components string in struct snd_ctl_card_info may have a
> special ASCII mark like '>' at the end of string specifying the
> availability of the complete string through another ioctl. I would
> prefer this solution.
>
> Also, the components string may be dynamic in the kernel structure
> (pointer) to save some space. 256 bytes is not small number.

As Jaroslav suggested, we need a different solution to keep the
compatibility.

My gut feeling is for the option to provide a new ioctl as it can be
most straightforward, but we can discuss further which is the good
choice.


thanks,

Takashi