Re: [PATCH v2 2/2] platform/x86: dell-smbios: Simplify error handling

From: Ilpo Järvinen
Date: Fri May 31 2024 - 12:19:42 EST


On Tue, 28 May 2024, Armin Wolf wrote:

> When the allocation of value_name fails, the error handling code
> uses two gotos for error handling, which is not necessary.
>
> Simplify the error handling in this case by only using a single goto.
>
> Tested on a Dell Inspiron 3505.
>
> Signed-off-by: Armin Wolf <W_Armin@xxxxxx>
> ---
> Changes since v1:
> - add patch
> ---
> drivers/platform/x86/dell/dell-smbios-base.c | 11 ++++-------
> 1 file changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/platform/x86/dell/dell-smbios-base.c b/drivers/platform/x86/dell/dell-smbios-base.c
> index 86b95206cb1b..b562ed99ec4e 100644
> --- a/drivers/platform/x86/dell/dell-smbios-base.c
> +++ b/drivers/platform/x86/dell/dell-smbios-base.c
> @@ -492,19 +492,16 @@ static int build_tokens_sysfs(struct platform_device *dev)
> /* add value */
> value_name = kasprintf(GFP_KERNEL, "%04x_value",
> da_tokens[i].tokenID);
> - if (value_name == NULL)
> - goto loop_fail_create_value;
> + if (!value_name) {
> + kfree(location_name);
> + goto out_unwind_strings;
> + }
>
> sysfs_attr_init(&token_entries[i].value_attr.attr);
> token_entries[i].value_attr.attr.name = value_name;
> token_entries[i].value_attr.attr.mode = 0444;
> token_entries[i].value_attr.show = value_show;
> token_attrs[j++] = &token_entries[i].value_attr.attr;
> - continue;
> -
> -loop_fail_create_value:
> - kfree(location_name);
> - goto out_unwind_strings;
> }
> smbios_attribute_group.attrs = token_attrs;

Good cleanup. Using continue on the main level of a loop is almost never a
good idea.

Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>

--
i.