diff options
author | Charles Keepax <ckeepax@opensource.cirrus.com> | 2024-12-20 17:35:14 +0000 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2024-12-24 22:44:55 +0000 |
commit | c36297b1bd6e52a75a8ed75eb5dbf35c50402398 (patch) | |
tree | a1ec145f4647046d982eb091303b1735604385c4 /include/sound | |
parent | 935cd06bfad4b715195befaf527a2d4fd36361d9 (diff) |
ASoC: SDCA: Add bounds check for function address
SDCA only supports 3-bits for the function address, but the ACPI value
is 64-bits. Update the code that parses this to do a bounds check
and error out on invalid addresses. Currently, an invalid address
would truncate to the bottom 3-bits when used and thus use a likely
incorrect address. With the bounds check, it is also now safe to
shrink the size of the adr member of sdca_function_desc to a u8 and
rearrange the struct members to pack better with the new size of adr.
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20241220173516.907406-3-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'include/sound')
-rw-r--r-- | include/sound/sdca.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/sound/sdca.h b/include/sound/sdca.h index 3eea1dfec16c..973252d0adac 100644 --- a/include/sound/sdca.h +++ b/include/sound/sdca.h @@ -23,9 +23,9 @@ struct sdw_slave; * @name: human-readable string */ struct sdca_function_desc { - u64 adr; - u32 type; const char *name; + u32 type; + u8 adr; }; /** |