linux/drivers/net/can/dev
Stefan Mätje b4f8240bc3 can: netlink: avoid call to do_set_data_bittiming callback with stale can_priv::ctrlmode
[ Upstream commit 2423cc2008 ]

This patch moves the evaluation of data[IFLA_CAN_CTRLMODE] in function
can_changelink in front of the evaluation of data[IFLA_CAN_BITTIMING].

This avoids a call to do_set_data_bittiming providing a stale
can_priv::ctrlmode with a CAN_CTRLMODE_FD flag not matching the
requested state when switching between a CAN Classic and CAN-FD bitrate.

In the same manner the evaluation of data[IFLA_CAN_CTRLMODE] in function
can_validate is also moved in front of the evaluation of
data[IFLA_CAN_BITTIMING].

This is a preparation for patches where the nominal and data bittiming
may have interdependencies on the driver side depending on the
CAN_CTRLMODE_FD flag state.

Signed-off-by: Stefan Mätje <stefan.maetje@esd.eu>
Link: https://patch.msgid.link/20240808164224.213522-1-stefan.maetje@esd.eu
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-10-10 11:57:28 +02:00
..
bittiming.c can: bittiming: can_validate_bitrate(): report error via netlink 2023-02-06 13:57:27 +01:00
calc_bittiming.c can: bittiming: can_calc_bittiming(): convert from netdev_err() to NL_SET_ERR_MSG_FMT() 2023-02-06 13:57:27 +01:00
dev.c can: dev: can_restart(): fix race condition between controller restart and netif_carrier_on() 2023-11-20 11:59:00 +01:00
length.c can: length: refactor frame lengths definition to add size in bits 2023-06-22 09:43:40 +02:00
Makefile can: Kconfig: add CONFIG_CAN_RX_OFFLOAD 2022-06-11 17:11:02 +02:00
netlink.c can: netlink: avoid call to do_set_data_bittiming callback with stale can_priv::ctrlmode 2024-10-10 11:57:28 +02:00
rx-offload.c can: rx-offload: add can_rx_offload_get_echo_skb_queue_tail() 2023-07-28 09:45:25 +02:00
skb.c can: dev: can_put_echo_skb(): don't crash kernel if can_priv::echo_skb is accessed out of bounds 2023-11-20 11:59:00 +01:00