Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'linux-can-fixes-for-6.18-20251020' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can

Marc Kleine-Budde says:

====================
pull-request: can 2025-10-20

All patches are by me. The first 3 update the bxcan, esd and rockchip
driver to drop skbs in xmit of the device is in listen only mode.

The last patch targets the CAN netlink implementation to allow the
disabling of automatic restart after Bus-Off, even if the a driver
doesn't implement that callback.

* tag 'linux-can-fixes-for-6.18-20251020' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can:
can: netlink: can_changelink(): allow disabling of automatic restart
can: rockchip-canfd: rkcanfd_start_xmit(): use can_dev_dropped_skb() instead of can_dropped_invalid_skb()
can: esd: acc_start_xmit(): use can_dev_dropped_skb() instead of can_dropped_invalid_skb()
can: bxcan: bxcan_start_xmit(): use can_dev_dropped_skb() instead of can_dropped_invalid_skb()
====================

Link: https://patch.msgid.link/20251020152516.1590553-1-mkl@pengutronix.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+7 -5
+1 -1
drivers/net/can/bxcan.c
··· 842 842 u32 id; 843 843 int i, j; 844 844 845 - if (can_dropped_invalid_skb(ndev, skb)) 845 + if (can_dev_dropped_skb(ndev, skb)) 846 846 return NETDEV_TX_OK; 847 847 848 848 if (bxcan_tx_busy(priv))
+4 -2
drivers/net/can/dev/netlink.c
··· 452 452 } 453 453 454 454 if (data[IFLA_CAN_RESTART_MS]) { 455 - if (!priv->do_set_mode) { 455 + unsigned int restart_ms = nla_get_u32(data[IFLA_CAN_RESTART_MS]); 456 + 457 + if (restart_ms != 0 && !priv->do_set_mode) { 456 458 NL_SET_ERR_MSG(extack, 457 459 "Device doesn't support restart from Bus Off"); 458 460 return -EOPNOTSUPP; ··· 463 461 /* Do not allow changing restart delay while running */ 464 462 if (dev->flags & IFF_UP) 465 463 return -EBUSY; 466 - priv->restart_ms = nla_get_u32(data[IFLA_CAN_RESTART_MS]); 464 + priv->restart_ms = restart_ms; 467 465 } 468 466 469 467 if (data[IFLA_CAN_RESTART]) {
+1 -1
drivers/net/can/esd/esdacc.c
··· 254 254 u32 acc_id; 255 255 u32 acc_dlc; 256 256 257 - if (can_dropped_invalid_skb(netdev, skb)) 257 + if (can_dev_dropped_skb(netdev, skb)) 258 258 return NETDEV_TX_OK; 259 259 260 260 /* Access core->tx_fifo_tail only once because it may be changed
+1 -1
drivers/net/can/rockchip/rockchip_canfd-tx.c
··· 72 72 int err; 73 73 u8 i; 74 74 75 - if (can_dropped_invalid_skb(ndev, skb)) 75 + if (can_dev_dropped_skb(ndev, skb)) 76 76 return NETDEV_TX_OK; 77 77 78 78 if (!netif_subqueue_maybe_stop(priv->ndev, 0,