2023-09-13 00:13:49

by Pierre-Louis Bossart

[permalink] [raw]
Subject: Re: [PATCH] ALSA: hda: intel-sdw-acpi: Use u8 type for link index



On 9/12/23 12:26, Peter Ujfalusi wrote:
> Use consistently u8 for sdw link index. The id is limited to 4, u8 is
> adequate in size to store it.
>
> This change will also fixes the following compiler warning/error (W=1):
>
> sound/hda/intel-sdw-acpi.c: In function ‘sdw_intel_acpi_scan’:
> sound/hda/intel-sdw-acpi.c:34:35: error: ‘-subproperties’ directive output may be truncated writing 14 bytes into a region of size between 7 and 17 [-Werror=format-truncation=]
> 34 | "mipi-sdw-link-%d-subproperties", i);
> | ^~~~~~~~~~~~~~
> In function ‘is_link_enabled’,
> inlined from ‘sdw_intel_scan_controller’ at sound/hda/intel-sdw-acpi.c:106:8,
> inlined from ‘sdw_intel_acpi_scan’ at sound/hda/intel-sdw-acpi.c:180:9:
> sound/hda/intel-sdw-acpi.c:33:9: note: ‘snprintf’ output between 30 and 40 bytes into a destination of size 32
> 33 | snprintf(name, sizeof(name),
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 34 | "mipi-sdw-link-%d-subproperties", i);
> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
>
> The warnings got brought to light by a recent patch upstream:
> commit 6d4ab2e97dcf ("extrawarn: enable format and stringop overflow warnings in W=1")
>
> Signed-off-by: Peter Ujfalusi <[email protected]>

Reviewed-by: Pierre-Louis Bossart <[email protected]>


> ---
> sound/hda/intel-sdw-acpi.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/sound/hda/intel-sdw-acpi.c b/sound/hda/intel-sdw-acpi.c
> index 5cb92f7ccbca..b57d72ea4503 100644
> --- a/sound/hda/intel-sdw-acpi.c
> +++ b/sound/hda/intel-sdw-acpi.c
> @@ -23,7 +23,7 @@ static int ctrl_link_mask;
> module_param_named(sdw_link_mask, ctrl_link_mask, int, 0444);
> MODULE_PARM_DESC(sdw_link_mask, "Intel link mask (one bit per link)");
>
> -static bool is_link_enabled(struct fwnode_handle *fw_node, int i)
> +static bool is_link_enabled(struct fwnode_handle *fw_node, u8 idx)
> {
> struct fwnode_handle *link;
> char name[32];
> @@ -31,7 +31,7 @@ static bool is_link_enabled(struct fwnode_handle *fw_node, int i)
>
> /* Find master handle */
> snprintf(name, sizeof(name),
> - "mipi-sdw-link-%d-subproperties", i);
> + "mipi-sdw-link-%hhu-subproperties", idx);
>
> link = fwnode_get_named_child_node(fw_node, name);
> if (!link)
> @@ -51,8 +51,8 @@ static int
> sdw_intel_scan_controller(struct sdw_intel_acpi_info *info)
> {
> struct acpi_device *adev = acpi_fetch_acpi_dev(info->handle);
> - int ret, i;
> - u8 count;
> + u8 count, i;
> + int ret;
>
> if (!adev)
> return -EINVAL;