Public bug reported:

Regression in Ubuntu 24.04 Noble lowlatency kernel affecting the Fintek
F81604 USB CAN driver.

Confirmed kernel versions:

GOOD:
6.8.0-134-lowlatency

BAD:
6.8.0-136-lowlatency
6.8.0-138-lowlatency

On the affected kernels CAN RX still works, but CAN TX does not
complete.

Minimal reproduction:

  sudo ip link set can1 down
  sudo ip link set can1 type can bitrate 125000 restart-ms 50
  sudo ip link set can1 up

  cansend can1 123#11223344

cansend() returns successfully, but:

- nothing appears in candump on a separate socket
- the CAN TX packet counter remains at 0
- the kernel continuously logs:

  f81604_read_int_callback: short int URB: 9 < 12

The same hardware and configuration work correctly when booted with
6.8.0-134-lowlatency.

Root cause has been identified upstream.

The regression was introduced by:

7299b1b39a255f6092ce4ec0b65f66e9d6a357af
can: usb: f81604: handle short interrupt urb messages properly

The F81604 interrupt payload contains 9 bytes. struct f81604_int_data was
declared __packed __aligned(4), making sizeof(struct f81604_int_data)
equal to 12 because of tail padding.

The new short-URB validation compares urb->actual_length against this
padded sizeof(), so the valid 9-byte hardware interrupt is rejected.
This prevents the TX-complete interrupt from being processed.

An upstream fix has already been accepted into the linux-can maintainer
tree:

cfc9bc6e7d37c5a085397bb98839dfa993c92ab8
can: usb: f81604: fix struct f81604_int_data size mismatch

It is currently in linux-can/testing and was included in:
linux-can-fixes-for-7.3-20260826

The upstream commit contains:

Fixes: 7299b1b39a25
Cc: [email protected]

This regression completely prevents CAN transmission on affected F81604
hardware.

I have access to the affected hardware and can promptly test/verify a
Noble kernel build containing the upstream fix.

ProblemType: Bug
DistroRelease: Ubuntu 24.04
Package: linux-image-6.8.0-138-lowlatency 6.8.0-138.138.1
ProcVersionSignature: Ubuntu 6.8.0-138.138.1-lowlatency 6.8.12
Uname: Linux 6.8.0-138-lowlatency x86_64
AlsaVersion: Advanced Linux Sound Architecture Driver Version 
k6.8.0-138-lowlatency.
AplayDevices: Error: [Errno 2] No such file or directory: 'aplay'
ApportVersion: 2.28.3-0ubuntu0.1
Architecture: amd64
ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord'
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/by-path', 
'/dev/snd/controlC0', '/dev/snd/hwC0D2', '/dev/snd/pcmC0D8p', 
'/dev/snd/pcmC0D7p', '/dev/snd/pcmC0D3p', '/dev/snd/seq', '/dev/snd/timer'] 
failed with exit code 1:
CRDA: N/A
Card0.Amixer.info: Error: [Errno 2] No such file or directory: 'amixer'
Card0.Amixer.values: Error: [Errno 2] No such file or directory: 'amixer'
CasperMD5CheckResult: unknown
Date: Wed Aug 26 13:36:30 2026
IwConfig: Error: [Errno 2] No such file or directory: 'iwconfig'
Lspci: Error: [Errno 2] No such file or directory: 'lspci'
Lspci-vt: Error: [Errno 2] No such file or directory: 'lspci'
Lsusb:
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 001 Device 002: ID 2c42:1709 FINTEK USB TO CANBUS BRIDGE 
 Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Lsusb-t:
 /:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/8p, 480M
     |__ Port 001: Dev 002, If 0, Class=[unknown], Driver=f81604, 12M
 /:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/7p, 5000M
MachineType: Advantech UNO-137-E1
PciMultimedia:
 
ProcEnviron:
 LANG=en_US.UTF-8
 PATH=(custom, no user)
 SHELL=/bin/bash
 TERM=xterm-256color
ProcFB:
 
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-6.8.0-138-lowlatency 
root=UUID=28bbc38e-b09f-4cfc-9c45-42acc99392b5 ro pcie_aspm=off 
intel_idle.max_cstate=1 quiet splash vt.handoff=7
RelatedPackageVersions:
 linux-restricted-modules-6.8.0-138-lowlatency N/A
 linux-backports-modules-6.8.0-138-lowlatency  N/A
 linux-firmware                                20240318.git3b128b60-0ubuntu2.29
RfKill: Error: [Errno 2] No such file or directory: 'rfkill'
SourcePackage: linux-lowlatency
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 10/06/2021
dmi.bios.release: 5.12
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 112
dmi.board.asset.tag: Default string
dmi.board.name: UNO-137-E1
dmi.board.vendor: Advantech
dmi.board.version: F1.12
dmi.chassis.asset.tag: Default string
dmi.chassis.type: 3
dmi.chassis.vendor: Default string
dmi.chassis.version: Default string
dmi.modalias: 
dmi:bvnAmericanMegatrendsInc.:bvr112:bd10/06/2021:br5.12:svnAdvantech:pnUNO-137-E1:pvrF1.12:rvnAdvantech:rnUNO-137-E1:rvrF1.12:cvnDefaultstring:ct3:cvrDefaultstring:skuDefaultstring:
dmi.product.family: Default string
dmi.product.name: UNO-137-E1
dmi.product.sku: Default string
dmi.product.version: F1.12
dmi.sys.vendor: Advantech

** Affects: linux-lowlatency (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug noble

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2165144

Title:
  [REGRESSION] f81604 CAN TX broken since 6.8.0-136 due to interrupt
  data struct padding

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-lowlatency/+bug/2165144/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to