]> git.proxmox.com Git - pve-kernel.git/commitdiff
fix #5373: cherry-pick USB ethernet naming fix
authorFabian Grünbichler <f.gruenbichler@proxmox.com>
Fri, 12 Apr 2024 13:25:02 +0000 (15:25 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Mon, 15 Apr 2024 07:24:09 +0000 (09:24 +0200)
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
patches/kernel/0013-net-usb-ax88179_178a-avoid-the-interface-always-conf.patch [new file with mode: 0644]

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 (file)
index 0000000..5f39f58
--- /dev/null
@@ -0,0 +1,50 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jose Ignacio Tornos Martinez <jtornosm@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@vger.kernel.org # 6.6+
+Fixes: d2689b6a86b9 ("net: usb: ax88179_178a: avoid two consecutive device resets")
+Reported-by: Dave Stevenson  <dave.stevenson@raspberrypi.com>
+Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>
+Reviewed-by: Simon Horman <horms@kernel.org>
+Link: https://lore.kernel.org/r/20240403132158.344838-1-jtornosm@redhat.com
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+(cherry picked from commit 2e91bb99b9d4f756e92e83c4453f894dda220f09)
+Signed-off-by: Fabian Grünbichler <f.gruenbichler@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);