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

Simon Horman
2025-01-23T11:09:36Z

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 <a0282524688@gmail.com>

...

> 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;
> +}

...