Subject: Re: [PATCH v6 4/7] can: Add Nuvoton NCT6694 CANFD support

From: Simon Horman <[email-masked]>
Date: Thu, 23 Jan 2025 11:09:29 +0000

On Thu, Jan 23, 2025 at 05:11:12PM +0800, Ming Yu wrote:
> This driver supports Socket CANFD functionality for NCT6694 MFD
> device based on USB interface.
> 
> Signed-off-by: Ming Yu <[email-masked]>

...

> diff --git a/drivers/net/can/usb/nct6694_canfd.c b/drivers/net/can/usb/nct6694_canfd.c

...

> +static int nct6694_can_get_clock(struct nct6694_can_priv *priv)
> +{
> +	struct nct6694_can_information *info;
> +	struct nct6694_cmd_header cmd_hd = {
> +		.mod = NCT6694_CAN_MOD,
> +		.cmd = NCT6694_CAN_INFORMATION,
> +		.sel = NCT6694_CAN_INFORMATION_SEL,
> +		.len = cpu_to_le16(sizeof(*info))
> +	};
> +	int ret, can_clk;
> +
> +	info = kzalloc(sizeof(*info), GFP_KERNEL);
> +	if (!info)
> +		return -ENOMEM;
> +
> +	ret = nct6694_read_msg(priv->nct6694, &cmd_hd, info);
> +	if (ret)
> +		goto exit;

Hi Ming Yu,

This goto will result in the function returning can_clk.
But can_clk is not initialised until the following line.

Flagged by W=1 builds with clang-19, and by Smatch.

> +
> +	can_clk = le32_to_cpu(info->can_clk);
> +
> +exit:
> +	kfree(info);
> +	return can_clk;
> +}

...