]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: sigmadsp: Use flexible array for control cache
authorRosen Penev <rosenp@gmail.com>
Mon, 11 May 2026 23:03:51 +0000 (16:03 -0700)
committerMark Brown <broonie@kernel.org>
Sat, 16 May 2026 02:30:33 +0000 (11:30 +0900)
Allocate SigmaDSP controls with kzalloc_flex() for the trailing
cache data instead of open-coding the size calculation.

Annotate the cache array with its existing byte count so the allocation
helper can initialize the counter.

Assisted-by: Codex:GPT-5.5
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://patch.msgid.link/20260511230351.28868-1-rosenp@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/sigmadsp.c

index 3343dbb63d2b70e1888bc5f981892a53d40ce802..2e08fde3989c2f0f622db89f9b75cfcfc46e65ae 100644 (file)
@@ -35,7 +35,7 @@ struct sigmadsp_control {
        struct snd_kcontrol *kcontrol;
        bool is_readback;
        bool cached;
-       uint8_t cache[];
+       u8 cache[] __counted_by(num_bytes);
 };
 
 struct sigmadsp_data {
@@ -223,7 +223,7 @@ static int sigma_fw_load_control(struct sigmadsp *sigmadsp,
                return -EINVAL;
 
        num_bytes = le16_to_cpu(ctrl_chunk->num_bytes);
-       ctrl = kzalloc(sizeof(*ctrl) + num_bytes, GFP_KERNEL);
+       ctrl = kzalloc_flex(*ctrl, cache, num_bytes);
        if (!ctrl)
                return -ENOMEM;