[pve-devel] [PATCH pve-kernel] fix #5373: cherry-pick USB ethernet naming fix

Fabian Grünbichler f.gruenbichler at proxmox.com
Fri Apr 12 15:25:02 CEST 2024


Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
---
test-built 6.8, but I assume 6.5 works as well since the patch applies cleanly
there (build hasn't finished yet ;))

I also assume this will be picked up fairly fast by stable point releases, but
not sure how fast those will be folded atm on the Ubuntu side with the freeze
going on ;)

 ...178a-avoid-the-interface-always-conf.patch | 50 +++++++++++++++++++
 1 file changed, 50 insertions(+)
 create mode 100644 patches/kernel/0013-net-usb-ax88179_178a-avoid-the-interface-always-conf.patch

diff --git a/patches/kernel/0013-net-usb-ax88179_178a-avoid-the-interface-always-conf.patch b/patches/kernel/0013-net-usb-ax88179_178a-avoid-the-interface-always-conf.patch
new file mode 100644
index 0000000..5f39f58
--- /dev/null
+++ b/patches/kernel/0013-net-usb-ax88179_178a-avoid-the-interface-always-conf.patch
@@ -0,0 +1,50 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jose Ignacio Tornos Martinez <jtornosm at redhat.com>
+Date: Wed, 3 Apr 2024 15:21:58 +0200
+Subject: [PATCH] net: usb: ax88179_178a: avoid the interface always configured
+ as random address
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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.
+
+cc: stable at vger.kernel.org # 6.6+
+Fixes: d2689b6a86b9 ("net: usb: ax88179_178a: avoid two consecutive device resets")
+Reported-by: Dave Stevenson  <dave.stevenson at raspberrypi.com>
+Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm at redhat.com>
+Reviewed-by: Simon Horman <horms at kernel.org>
+Link: https://lore.kernel.org/r/20240403132158.344838-1-jtornosm@redhat.com
+Signed-off-by: Jakub Kicinski <kuba at kernel.org>
+(cherry picked from commit 2e91bb99b9d4f756e92e83c4453f894dda220f09)
+Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
+---
+ drivers/net/usb/ax88179_178a.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/net/usb/ax88179_178a.c b/drivers/net/usb/ax88179_178a.c
+index d837c1887416..e0e9b4c53cb0 100644
+--- a/drivers/net/usb/ax88179_178a.c
++++ b/drivers/net/usb/ax88179_178a.c
+@@ -1273,6 +1273,8 @@ static void ax88179_get_mac_addr(struct usbnet *dev)
+ 
+ 	if (is_valid_ether_addr(mac)) {
+ 		eth_hw_addr_set(dev->net, mac);
++		if (!is_local_ether_addr(mac))
++			dev->net->addr_assign_type = NET_ADDR_PERM;
+ 	} else {
+ 		netdev_info(dev->net, "invalid MAC address, using random\n");
+ 		eth_hw_addr_random(dev->net);
-- 
2.39.2





More information about the pve-devel mailing list