diff options
Diffstat (limited to 'queue-6.1/net-usb-ax88179_178a-avoid-writing-the-mac-address-before-first-reading.patch')
-rw-r--r-- | queue-6.1/net-usb-ax88179_178a-avoid-writing-the-mac-address-before-first-reading.patch | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/queue-6.1/net-usb-ax88179_178a-avoid-writing-the-mac-address-before-first-reading.patch b/queue-6.1/net-usb-ax88179_178a-avoid-writing-the-mac-address-before-first-reading.patch new file mode 100644 index 0000000000..f8cb7c900d --- /dev/null +++ b/queue-6.1/net-usb-ax88179_178a-avoid-writing-the-mac-address-before-first-reading.patch @@ -0,0 +1,64 @@ +From 56f78615bcb1c3ba58a5d9911bad3d9185cf141b Mon Sep 17 00:00:00 2001 +From: Jose Ignacio Tornos Martinez <jtornosm@redhat.com> +Date: Wed, 17 Apr 2024 10:55:13 +0200 +Subject: net: usb: ax88179_178a: avoid writing the mac address before first reading + +From: Jose Ignacio Tornos Martinez <jtornosm@redhat.com> + +commit 56f78615bcb1c3ba58a5d9911bad3d9185cf141b upstream. + +After the commit d2689b6a86b9 ("net: usb: ax88179_178a: avoid two +consecutive device resets"), reset operation, in which the default mac +address from the device is read, is not executed from bind operation and +the random address, that is pregenerated just in case, is direclty written +the first time in the device, so the default one from the device is not +even read. This writing is not dangerous because is volatile and the +default mac address is not missed. + +In order to avoid this and keep the simplification to have only one +reset and reduce the delays, restore the reset from bind operation and +remove the reset that is commanded from open operation. The behavior is +the same but everything is ready for usbnet_probe. + +Tested with ASIX AX88179 USB Gigabit Ethernet devices. +Restore the old behavior for the rest of possible devices because I don't +have the hardware to test. + +cc: stable@vger.kernel.org # 6.6+ +Fixes: d2689b6a86b9 ("net: usb: ax88179_178a: avoid two consecutive device resets") +Reported-by: Jarkko Palviainen <jarkko.palviainen@gmail.com> +Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com> +Link: https://lore.kernel.org/r/20240417085524.219532-1-jtornosm@redhat.com +Signed-off-by: Jakub Kicinski <kuba@kernel.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +--- + drivers/net/usb/ax88179_178a.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/net/usb/ax88179_178a.c ++++ b/drivers/net/usb/ax88179_178a.c +@@ -1317,6 +1317,8 @@ static int ax88179_bind(struct usbnet *d + + netif_set_tso_max_size(dev->net, 16384); + ++ ax88179_reset(dev); ++ + return 0; + } + +@@ -1695,7 +1697,6 @@ static const struct driver_info ax88179_ + .unbind = ax88179_unbind, + .status = ax88179_status, + .link_reset = ax88179_link_reset, +- .reset = ax88179_reset, + .stop = ax88179_stop, + .flags = FLAG_ETHER | FLAG_FRAMING_AX, + .rx_fixup = ax88179_rx_fixup, +@@ -1708,7 +1709,6 @@ static const struct driver_info ax88178a + .unbind = ax88179_unbind, + .status = ax88179_status, + .link_reset = ax88179_link_reset, +- .reset = ax88179_reset, + .stop = ax88179_stop, + .flags = FLAG_ETHER | FLAG_FRAMING_AX, + .rx_fixup = ax88179_rx_fixup, |