• Marc Kleine-Budde's avatar
    can: kvaser_usb: hydra: help gcc-13 to figure out cmd_len · f0062291
    Marc Kleine-Budde authored
    Debian's gcc-13 [1] throws the following error in
    kvaser_usb_hydra_cmd_size():
    
    [1] gcc version 13.0.0 20221214 (experimental) [master r13-4693-g512098a3316] (Debian 13-20221214-1)
    
    | drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c:502:65: error:
    | array subscript ‘struct kvaser_cmd_ext[0]’ is partly outside array
    | bounds of ‘unsigned char[32]’ [-Werror=array-bounds=]
    |   502 |                 ret = le16_to_cpu(((struct kvaser_cmd_ext *)cmd)->len);
    
    kvaser_usb_hydra_cmd_size() returns the size of given command. It
    depends on the command number (cmd->header.cmd_no). For extended
    commands (cmd->header.cmd_no == CMD_EXTENDED) the above shown code is
    executed.
    
    Help gcc to recognize that this code path is not taken in all cases,
    by calling kvaser_usb_hydra_cmd_size() directly after assigning the
    command number.
    
    Fixes: aec5fb22 ("can: kvaser_usb: Add support for Kvaser USB hydra family")
    Cc: Jimmy Assarsson <extja@kvaser.com>
    Cc: Anssi Hannula <anssi.hannula@bitwise.fi>
    Link: https://lore.kernel.org/all/20221219110104.1073881-1-mkl@pengutronix.deTested-by: default avatarJimmy Assarsson <extja@kvaser.com>
    Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
    f0062291
kvaser_usb_hydra.c 54.8 KB