Hello netdev-team,
this is a pull request of 15 patches for net/main.
The first patch is by Vincent Mailhol and drops CAN-XL frames on non
CAN-XL devices.
A patch by Kaixuan Li for the CAN ISOTP protocol improves the check
for the correct CAN CC/FD frames.
The next 3 patches are by Cunhao Lu and make CAN skb freeing safe in
any context in several CAN helper functions.
A series by Oliver Hartkopp et al fixes several problems in the CAN
net-layer:
Oliver Hartkopp contributes a patch to convert the unreliable
ARPHRD_CAN type check to the robust can_get_ml_priv(). Further a patch
that adds missing error checking to the bind callback of the CAN
ISO-TP protocol. Followed by converting the CAN RAW, BCM and ISO-TP
protocol to protect the receive lists with a per-device lock. Then the
RAW and ISO-TP protocols are converted to copy the socket options
outside of lock_sock().
3 patches target the CAN procfs: A patch by Runyu Xiao resets the CAN
pkg_stats using atomics, a patch by Oliver Hartkopp fixes the stats
calculation after a statistics reset. Followed by a patch to remove
kernel pointers from the output.
ChunYuZhiQiang contributes 2 patches for the CAN netlink interfaces,
to prevent waking up the CAN device, if the interface is down.
The last patch is by Liu Changjie and fixes the decoding of bulk USB
URBs in the Peak USB CAN driver.
regards,
Marc
---
The following changes since commit 647b81ddefc6364290e67bf33c89d54971f8995e:
tcp: wait for TIME_WAIT teardown before freeing per-netns ehash (2026-11-03 15:43:22 +0100)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can.git tags/linux-can-fixes-for-7.4-20261103
for you to fetch changes up to 2d4c272e816a5b784f1fc7899256f8826df34edb:
can: peak_usb: pcan_usb_fd_decode_buf(): accept short uCAN end-of-list records (2026-11-03 19:54:30 +0100)
----------------------------------------------------------------
linux-can-fixes-for-7.4-20261103
----------------------------------------------------------------
ChunYuZhiQiang (2):
can: dev: can_fill_info(): don't wake up controller if interface is down
can: dev: can_tdc_fill_info(): don't read automatic TDCV if interface is down
Cunhao Lu (3):
can: skb: make echo skb freeing safe in any IRQ context
can: skb: make CAN skb allocation failure paths IRQ-safe
can: dev: can_put_echo_skb(): free skb on invalid echo index
Kaixuan Li (1):
can: isotp: check the frame type, not just the length
Liu Changjie (1):
can: peak_usb: pcan_usb_fd_decode_buf(): accept short uCAN end-of-list records
Marc Kleine-Budde (3):
Merge patch series "can: skb: make echo skb freeing safe in any IRQ context"
Merge patch series "can: protect the receive lists with a per-device lock"
Merge patch series "can: dev: can_fill_info(): don't wake up controller if interface is down"
Oliver Hartkopp (6):
can: replace ARPHRD_CAN type checks with can_get_ml_priv()
can: isotp: check the return values of can_rx_register() in isotp_bind()
can: protect the receive lists with a per-device lock
can: raw, isotp: copy socket options outside of lock_sock()
can: proc: skip stats calculation after reset in can_stat_update()
can: proc: remove pointers from CAN specific proc output
Runyu Xiao (1):
can: proc: reset pkg_stats atomics individually
Vincent Mailhol (1):
can: dev: can_dropped_invalid_skb: drop CAN XL frames on non-CAN XL devices
Documentation/networking/can.rst | 16 +-
drivers/net/can/dev/netlink.c | 21 ++-
drivers/net/can/dev/skb.c | 16 +-
drivers/net/can/usb/peak_usb/pcan_usb_fd.c | 7 +-
include/linux/can/can-ml.h | 3 +
include/linux/can/core.h | 2 +-
include/linux/can/dev.h | 2 +-
include/linux/can/skb.h | 4 +-
include/net/netns/can.h | 2 +-
net/can/af_can.c | 62 ++++---
net/can/af_can.h | 2 +-
net/can/bcm.c | 64 +++----
net/can/gw.c | 9 +-
net/can/isotp.c | 236 ++++++++++++++----------
net/can/j1939/main.c | 2 +-
net/can/proc.c | 95 ++++++----
net/can/raw.c | 278 +++++++++++++++++------------
17 files changed, 477 insertions(+), 344 deletions(-)