* [REGRESSION] can: usb: f81604: TX broken with "short int URB: 9 < 12"
@ 2026-07-07 5:46 Dynetrex, Admin
2026-07-07 5:59 ` Greg KH
0 siblings, 1 reply; 2+ messages in thread
From: Dynetrex, Admin @ 2026-07-07 5:46 UTC (permalink / raw)
To: linux-can; +Cc: gregkh, peter_hong, mkl, mailhol, stable
Hello,
I found an issue with a patch applied to the can/usb/f81604 driver on 2026-02-23.
https://git.kernel.org/stable/c/36ead57443146e6b730ce1f48ca3e9b17e19a3d2
The patch added a check to make sure urb->actual_length is not less than sizeof(struct f81604_int_data). The issue is that the interrupt data from the device is 9 bytes, but sizeof(struct f81604_int_data) returns 12 because the struct is marked __aligned(4).
This causes valid interrupt URBs to be rejected. After this patch, CAN frames no longer transmit successfully, while before the patch they transmitted without issue.
Each transmit attempt logs the following in dmesg:
f81604_read_int_callback: short int URB: 9 < 12
Please consider either removing the __aligned(4) attribute from struct f81604_int_data, or using a constant for the actual wire packet length when checking urb->actual_length.
Kind regards,
Alex
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [REGRESSION] can: usb: f81604: TX broken with "short int URB: 9 < 12"
2026-07-07 5:46 [REGRESSION] can: usb: f81604: TX broken with "short int URB: 9 < 12" Dynetrex, Admin
@ 2026-07-07 5:59 ` Greg KH
0 siblings, 0 replies; 2+ messages in thread
From: Greg KH @ 2026-07-07 5:59 UTC (permalink / raw)
To: Dynetrex, Admin; +Cc: linux-can, peter_hong, mkl, mailhol, stable
On Mon, Jul 06, 2026 at 10:46:00PM -0700, Dynetrex, Admin wrote:
> Hello,
>
> I found an issue with a patch applied to the can/usb/f81604 driver on 2026-02-23.
>
> https://git.kernel.org/stable/c/36ead57443146e6b730ce1f48ca3e9b17e19a3d2
>
> The patch added a check to make sure urb->actual_length is not less than sizeof(struct f81604_int_data). The issue is that the interrupt data from the device is 9 bytes, but sizeof(struct f81604_int_data) returns 12 because the struct is marked __aligned(4).
>
> This causes valid interrupt URBs to be rejected. After this patch, CAN frames no longer transmit successfully, while before the patch they transmitted without issue.
>
> Each transmit attempt logs the following in dmesg:
>
> f81604_read_int_callback: short int URB: 9 < 12
>
> Please consider either removing the __aligned(4) attribute from struct f81604_int_data, or using a constant for the actual wire packet length when checking urb->actual_length.
Please consider submitting a patch to resolve this issue so you get full
credit for the fix.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-07-07 5:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-07 5:46 [REGRESSION] can: usb: f81604: TX broken with "short int URB: 9 < 12" Dynetrex, Admin
2026-07-07 5:59 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox