From 7d4e617e698e769a7651c3d1db5f3a161baf8837 Mon Sep 17 00:00:00 2001 From: Old-Ding <35417409+Old-Ding@users.noreply.github.com> Date: Mon, 6 Jul 2026 10:45:04 +0800 Subject: [PATCH] bsp: rockchip: Fix CAN-FD bit timing copy size RT_CAN_CMD_SET_BITTIMING receives an array of struct rt_can_bit_timing entries. The Rockchip CAN-FD driver used sizeof(&timing->items[n]) when copying those entries, so only pointer-sized bytes were copied into the device configuration. Use the element size so both arbitration and data phase timing structures are copied completely. Generated-by: OpenAI Codex Signed-off-by: Old-Ding <35417409+Old-Ding@users.noreply.github.com> --- bsp/rockchip/dm/can/canfd-rockchip.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bsp/rockchip/dm/can/canfd-rockchip.c b/bsp/rockchip/dm/can/canfd-rockchip.c index b8f72fc6354..864517cc6c0 100755 --- a/bsp/rockchip/dm/can/canfd-rockchip.c +++ b/bsp/rockchip/dm/can/canfd-rockchip.c @@ -534,13 +534,13 @@ static rt_err_t rockchip_canfd_control(struct rt_can_device *can, int cmd, void if (timing->count) { rt_memcpy(&can->config.can_timing, &timing->items[0], - sizeof(&timing->items[0])); + sizeof(timing->items[0])); } if (timing->count == 2) { rt_memcpy(&can->config.canfd_timing, &timing->items[1], - sizeof(&timing->items[1])); + sizeof(timing->items[1])); } break;