]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: SOF: amd: Fix error code handling in psp_send_cmd()
authorMario Limonciello <mario.limonciello@amd.com>
Mon, 11 May 2026 15:36:36 +0000 (10:36 -0500)
committerMark Brown <broonie@kernel.org>
Tue, 12 May 2026 01:14:33 +0000 (10:14 +0900)
The smn_read_register() helper returns negative error codes on failure
or the register value on success. When used with read_poll_timeout(),
the return value is stored in the 'data' variable.

Currently 'data' is declared as u32, which causes negative error codes
to be cast to large positive values. This makes the condition 'data > 0'
incorrectly treat errors as success.

Fix by changing 'data' from u32 to int, matching the pattern used in
psp_mbox_ready() which correctly handles the same helper function.

Reported-by: Dan Carpenter <error27@gmail.com>
Closes: https://lore.kernel.org/linux-sound/agGES8vWrLOrBu28@stanley.mountain/
Fixes: f120cf33d232 ("ASoC: SOF: amd: Use AMD_NODE")
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Link: https://patch.msgid.link/20260511153638.724810-1-mario.limonciello@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sof/amd/acp.c

index 71a18f156de23b2aa7091c393ee4d8559b0c0947..f615b8d1c802083a1acb205178283c632fd278db 100644 (file)
@@ -223,7 +223,7 @@ static int psp_send_cmd(struct acp_dev_data *adata, int cmd)
 {
        struct snd_sof_dev *sdev = adata->dev;
        int ret;
-       u32 data;
+       int data;
 
        if (!cmd)
                return -EINVAL;