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 <redacted>
...
quoted hunk ↗ jump to hunk
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;
+}
...