Skip to contentSkip to conversation

USB ethernet AX88179 broken usb ethernet names

Regression Salvatore Bonaccorso 2 participants 3 messages Apr 16, 2024 – Apr 19, 2024

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

Hi,

Roland Rosenfeld reported in Debian a regression after the update to the 6.1.85 based kernel, with his USB ethernet device not anymore able to use the usb ethernet names.

https://bugs.debian.org/1069082

it is somehow linked to the already reported regression
https://lore.kernel.org/regressions/ZhFl6xueHnuVHKdp@nuc/ but has another aspect. I'm quoting his original report:

Quoted 56 lines

Dear Maintainer,

when upgrading from 6.1.76-1 to 6.1.85-1 my USB ethernet device
ID 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet
is no longer named enx00249bXXXXXX but eth0.

I see the following in dmsg:

[    1.484345] usb 4-5: Manufacturer: ASIX Elec. Corp.
[    1.484661] usb 4-5: SerialNumber: 0000249BXXXXXX
[    1.496312] ax88179_178a 4-5:1.0 eth0: register 'ax88179_178a' at usb-0000:00:14.0-5, ASIX AX88179 USB 3.0 Gigabit Ethernet, d2:60:4c:YY:YY:YY
[    1.497746] usbcore: registered new interface driver ax88179_178a

Unplugging and plugging again does not solve the issue, but the interface still is named eth0.

Maybe it has to do with the following commit from
https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.85

commit fc77240f6316d17fc58a8881927c3732b1d75d51

Author: Jose Ignacio Tornos Martinez <[email protected]>
Date:   Wed Apr 3 15:21:58 2024 +0200

net: usb: ax88179_178a: avoid the interface always configured as random address

commit 2e91bb99b9d4f756e92e83c4453f894dda220f09 upstream.

After the commit d2689b6a86b9 ("net: usb: ax88179_178a: avoid two consecutive device resets"), reset is not executed from bind operation and mac address is not read from the device registers or the devicetree at that moment. Since the check to configure if the assigned mac address is random or not for the interface, happens after the bind operation from usbnet_probe, the interface keeps configured as random address, although the address is correctly read and set during open operation (the only reset now).

In order to keep only one reset for the device and to avoid the interface always configured as random address, after reset, configure correctly the suitable field from the driver, if the mac address is read successfully from the device registers or the devicetree. Take into account if a locally administered address (random) was previously stored.

Seems, that I'm not alone with this issue, there are also reports in
https://www.reddit.com/r/debian/comments/1c304xn/linuximageamd64_61851_usb_link_interface_names/
and https://infosec.space/@topher/112276500329020316

Quoted 6 lines

All other (pci based) network interfaces still use there static names (enp0s25, enp2s0, enp3s0), only the usb ethernet name is broken with the new kernel.

Greetings
Roland

Roland confirmed that reverting both fc77240f6316 ("net: usb:
ax88179_178a: avoid the interface always configured as random address") and 5c4cbec5106d ("net: usb: ax88179_178a: avoid two consecutive device resets") fixes the problem.

Confirmation: https://bugs.debian.org/1069082#27

Regards,
Salvatore

#2 lore raw

Hello Salvatore,

Fix is there:
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=56f78615bcb1
And now in linux.

I have successfully tested it with ubuntu, installing the latest linux upstream kernel:

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.4 LTS
Release:	22.04
Codename:	jammy
$ uname -a
Linux unbuntu-test 6.9.0-rc4+ #8 SMP PREEMPT_DYNAMIC Fri Apr 19 11:59:17 CEST 2024 x86_64 x86_64 x86_64 GNU/Linux
$ sudo dmesg | grep ax88
[    3.848935] ax88179_178a 1-9:1.0 eth0: register 'ax88179_178a' at usb-0000:00:14.0-9, ASIX AX88179 USB 3.0 Gigabit Ethernet, aa:20:18:10:09:63
[    3.848956] usbcore: registered new interface driver ax88179_178a
[    3.854332] ax88179_178a 1-9:1.0 enxaa2018100963: renamed from eth0

Best regards
José Ignacio