]> git.ipfire.org Git - thirdparty/linux.git/commit
ALSA: core: Use flexible array for card private data
authorCássio Gabriel <cassiogabrielcontato@gmail.com>
Mon, 1 Jun 2026 01:23:35 +0000 (22:23 -0300)
committerTakashi Iwai <tiwai@suse.de>
Mon, 1 Jun 2026 09:29:02 +0000 (11:29 +0200)
commite9c82f767f0f46ef90eeefccc0a8006cc86aff40
tree0f2a30dfa45fb67d68a28817ed91b82cf79155c6
parent8a2d0b5496850403d1105efbbe54aa8fc68cae6f
ALSA: core: Use flexible array for card private data

snd_card_new() and snd_devm_card_new() allocate struct snd_card
together with optional driver-private storage. The storage is currently
described only by open-coded sizeof(*card) + extra_size arithmetic, and
snd_card_init() reaches it by manually adding sizeof(struct snd_card) to
the card pointer.

Make the trailing storage explicit with a flexible array member. Use
kzalloc_flex() for the regular allocation path and struct_size() for the
devres allocation size. This documents the layout and avoids open-coded
variable-size object arithmetic.

Align the flexible array to unsigned long long so the driver-private area
does not become less aligned than the old sizeof(struct snd_card) tail
address on 32-bit ABIs.

Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com>
Link: https://patch.msgid.link/20260531-alsa-card-private-flex-array-v2-1-e4ff67f5bd23@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
include/sound/core.h
sound/core/init.c