Re: [REGRESSION] usb: core: interrupt-IN wBytesPerInterval fixup (727d045d064b) breaks RTL8153 in Lenovo dock

Amin Vakil <[email protected]>
Newsgroups dev.linux.lists.regressions,org.kernel.vger.linux-usb
Message-ID <[email protected]>
On 6/16/26 1:58 PM, Thorsten Leemhuis wrote:
> On 6/16/26 11:49, Amin Vakil wrote:
>>
>> The following change, backported to the 7.0.x stable series, introduces
>> a regression that disables the wired ethernet of a Lenovo USB-C/
>> Thunderbolt dock:
>>
>>    commit 727d045d064b7c9a24db3bce9c0485a382cb768b
>>    usb: core: Fix up Interrupt IN endpoints with bogus wBytesPerInterval
> 
> Is 7.1 affected as well? Ideally try using a non-hardened kernel to keep
> the downstream patches out of the way.
> 
> Ciao, Thorsten
> 

linux 7.1 is not available on official Arch Linux repositories, give me 
a couple of hours to compile and test, I'll use non-hardened kernel as 
well, I'll propose a patch ensuring issue has been fixed as well, if 
that's OK.

Best Regards,
Amin Vakil

>> Hardware: Lenovo dock built-in Realtek RTL8153, enumerating as USB ID
>> 17ef:721e (Lenovo rebrand of 0bda:8153), driven by r8152 through r8152-
>> cfgselector. Host is an Intel laptop with xhci_hcd.
>>
>> Symptom: on the patched kernel the NIC enumerates, r8152 binds and the
>> netdev is created, then about one second later the device is USB-
>> disconnected by r8152-cfgselector and never returns. No ethernet
>> interface remains. USB, HDMI and the rest of the dock keep working, and
>> plugging the cable straight into the laptop built-in NIC is unaffected.
>>
>> Affected vs working (Arch linux-hardened): 7.0.11.hardened2 works,
>> 7.0.12.hardened1 is broken. This commit is the only RTL8153/USB-core
>> change in that delta, and it activates a code path that did not run
>> before on this device (note the new wBytesPerInterval message in the
>> dmesg below, absent on 7.0.11).
>>
>> Why this commit: configuration 2 (CDC) of the device has an interrupt IN
>> endpoint (EP 0x83) with wMaxPacketSize=16 and wBytesPerInterval=8. The
>> new condition (wBytesPerInterval < wMaxPacketSize on an interrupt IN
>> endpoint) now fires and rewrites wBytesPerInterval from 8 to 16. On this
>> dock plus xHCI host that rewrite appears to make the device fall off the
>> bus right after the cfgselector reset.
>>
>> dmesg (broken kernel 7.0.12.hardened1):
>>    usb 2-1.1: New USB device found, idVendor=17ef, idProduct=721e,
>> bcdDevice=31.03
>>    usb 2-1.1: Int endpoint with wBytesPerInterval of 8 in config 2
>> interface 0 altsetting 0 ep 131: setting to 16
>>    r8152-cfgselector 2-1.1: reset SuperSpeed USB device number 3 using
>> xhci_hcd
>>    r8152 2-1.1:1.0 (unnamed net_device) (uninitialized): Invalid header
>> when reading pass-thru MAC addr
>>    r8152 2-1.1:1.0 enp0s13f0u1u1: renamed from eth0
>>    r8152-cfgselector 2-1.1: USB disconnect, device number 3
>>
>> Relevant descriptors (lsusb -v -d 17ef:721e, captured on the working
>> 7.0.11 kernel): configuration 2 (CDC), endpoint 0x83 IN Interrupt has
>> wMaxPacketSize=0x0010 (16 bytes), bInterval=8, bMaxBurst=0,
>> wBytesPerInterval=8 (rewritten to 16 by the new fixup). Configuration 1,
>> the vendor config that r8152 actually uses, has its interrupt endpoint
>> 0x83 with wMaxPacketSize=2 and wBytesPerInterval=2, which is not affected.
>>
>> Reverting this commit (or just the new interrupt IN branch in drivers/
>> usb/core/config.c) should restore the device. I am happy to build and
>> confirm a revert, and to test any proposed fix. A quirk to skip the
>> interrupt IN fixup for the RTL8153 CDC configuration, or otherwise
>> narrowing the new condition, seems like the right direction.
>>
>> I can provide the full dmesg and full lsusb -v output on request.
>>
>> #regzbot introduced: 727d045d064b7c9a24db3bce9c0485a382cb768b
>>
>> Best Regards,
>> Amin Vakil
>
OpenPGP_0x1EFC1864E9D9E56B.asc (application/pgp-keys, 2.4 KB)
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
+78sXChAfE9n44i0gJHzV8BhCsQG4+k=
=GHsk
-----END PGP PUBLIC KEY BLOCK-----
OpenPGP_signature.asc (application/pgp-signature, 665 B)
-----BEGIN PGP SIGNATURE-----

wsD5BAABCAAjFiEEhGrABIXlXG/0vJ9THvwYZOnZ5WsFAmoxOM0FAwAAAAAACgkQHvwYZOnZ5WsC
Qgv7B/6uvRkElb4KOwcAZkvw2nMyUSig0muQcg64DAx6qMrKyVYOxlHTxlBSJDM0DFaRhuEgSLcy
xafZSOYX+SJpm0aOHXv/EpYpMw2rfN6KQlr2MhksbaVSi+DrXXI4ZgXW/yPDoatoKtAa8y6eK4/q
kMSqtl5baDVPeQI0Ht8qiitGoGuEb87oOpAHHsRcQYCxpKnUj9mmP5T2RcqoXsWgx8+fh4nzEEfr
v2bK4xOvg0vAppiV2rfDpu899egvm1K3pCmZ6OYVg6qc4y8RaCpmHmR9iLYLCO9ZwJKte7FB0i6j
n0Uj0aHw39vT54/CEQc8t9flxKzMwEsLXUbreTut1VV7sp9Uwps5a46GX7aik3SJgoODbib6LDEH
XiYdZKPgPI8YezsLUROySLadvcN4QrlUzX+gBQjCeLUoS90DWnSo56vmD2YdVhEdzVqJ+4yDhzEI
Ypntg17tbRpu2fRkuvlRKuGotPa6Q0R6GkdcpgiEqlYQikdxmXGyCkAQWaSJ
=wYNf
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.