From: Greg Kroah-Hartman Date: Wed, 27 Jul 2022 10:15:09 +0000 (+0200) Subject: 5.15-stable patches X-Git-Tag: v4.9.325~15 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c512c63a248d586f8b69356218f6798e87f843ab;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: net-usb-ax88179_178a-needs-flag_send_zlp.patch --- diff --git a/queue-5.15/net-usb-ax88179_178a-needs-flag_send_zlp.patch b/queue-5.15/net-usb-ax88179_178a-needs-flag_send_zlp.patch new file mode 100644 index 00000000000..000c548644b --- /dev/null +++ b/queue-5.15/net-usb-ax88179_178a-needs-flag_send_zlp.patch @@ -0,0 +1,139 @@ +From 36a15e1cb134c0395261ba1940762703f778438c Mon Sep 17 00:00:00 2001 +From: Jose Alonso +Date: Mon, 13 Jun 2022 15:32:44 -0300 +Subject: net: usb: ax88179_178a needs FLAG_SEND_ZLP + +From: Jose Alonso + +commit 36a15e1cb134c0395261ba1940762703f778438c upstream. + +The extra byte inserted by usbnet.c when + (length % dev->maxpacket == 0) is causing problems to device. + +This patch sets FLAG_SEND_ZLP to avoid this. + +Tested with: 0b95:1790 ASIX Electronics Corp. AX88179 Gigabit Ethernet + +Problems observed: +====================================================================== +1) Using ssh/sshfs. The remote sshd daemon can abort with the message: + "message authentication code incorrect" + This happens because the tcp message sent is corrupted during the + USB "Bulk out". The device calculate the tcp checksum and send a + valid tcp message to the remote sshd. Then the encryption detects + the error and aborts. +2) NETDEV WATCHDOG: ... (ax88179_178a): transmit queue 0 timed out +3) Stop normal work without any log message. + The "Bulk in" continue receiving packets normally. + The host sends "Bulk out" and the device responds with -ECONNRESET. + (The netusb.c code tx_complete ignore -ECONNRESET) +Under normal conditions these errors take days to happen and in +intense usage take hours. + +A test with ping gives packet loss, showing that something is wrong: +ping -4 -s 462 {destination} # 462 = 512 - 42 - 8 +Not all packets fail. +My guess is that the device tries to find another packet starting +at the extra byte and will fail or not depending on the next +bytes (old buffer content). +====================================================================== + +Signed-off-by: Jose Alonso +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/usb/ax88179_178a.c | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +--- a/drivers/net/usb/ax88179_178a.c ++++ b/drivers/net/usb/ax88179_178a.c +@@ -1796,7 +1796,7 @@ static const struct driver_info ax88179_ + .link_reset = ax88179_link_reset, + .reset = ax88179_reset, + .stop = ax88179_stop, +- .flags = FLAG_ETHER | FLAG_FRAMING_AX, ++ .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .rx_fixup = ax88179_rx_fixup, + .tx_fixup = ax88179_tx_fixup, + }; +@@ -1809,7 +1809,7 @@ static const struct driver_info ax88178a + .link_reset = ax88179_link_reset, + .reset = ax88179_reset, + .stop = ax88179_stop, +- .flags = FLAG_ETHER | FLAG_FRAMING_AX, ++ .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .rx_fixup = ax88179_rx_fixup, + .tx_fixup = ax88179_tx_fixup, + }; +@@ -1822,7 +1822,7 @@ static const struct driver_info cypress_ + .link_reset = ax88179_link_reset, + .reset = ax88179_reset, + .stop = ax88179_stop, +- .flags = FLAG_ETHER | FLAG_FRAMING_AX, ++ .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .rx_fixup = ax88179_rx_fixup, + .tx_fixup = ax88179_tx_fixup, + }; +@@ -1835,7 +1835,7 @@ static const struct driver_info dlink_du + .link_reset = ax88179_link_reset, + .reset = ax88179_reset, + .stop = ax88179_stop, +- .flags = FLAG_ETHER | FLAG_FRAMING_AX, ++ .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .rx_fixup = ax88179_rx_fixup, + .tx_fixup = ax88179_tx_fixup, + }; +@@ -1848,7 +1848,7 @@ static const struct driver_info sitecom_ + .link_reset = ax88179_link_reset, + .reset = ax88179_reset, + .stop = ax88179_stop, +- .flags = FLAG_ETHER | FLAG_FRAMING_AX, ++ .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .rx_fixup = ax88179_rx_fixup, + .tx_fixup = ax88179_tx_fixup, + }; +@@ -1861,7 +1861,7 @@ static const struct driver_info samsung_ + .link_reset = ax88179_link_reset, + .reset = ax88179_reset, + .stop = ax88179_stop, +- .flags = FLAG_ETHER | FLAG_FRAMING_AX, ++ .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .rx_fixup = ax88179_rx_fixup, + .tx_fixup = ax88179_tx_fixup, + }; +@@ -1874,7 +1874,7 @@ static const struct driver_info lenovo_i + .link_reset = ax88179_link_reset, + .reset = ax88179_reset, + .stop = ax88179_stop, +- .flags = FLAG_ETHER | FLAG_FRAMING_AX, ++ .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .rx_fixup = ax88179_rx_fixup, + .tx_fixup = ax88179_tx_fixup, + }; +@@ -1887,7 +1887,7 @@ static const struct driver_info belkin_i + .link_reset = ax88179_link_reset, + .reset = ax88179_reset, + .stop = ax88179_stop, +- .flags = FLAG_ETHER | FLAG_FRAMING_AX, ++ .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .rx_fixup = ax88179_rx_fixup, + .tx_fixup = ax88179_tx_fixup, + }; +@@ -1900,7 +1900,7 @@ static const struct driver_info toshiba_ + .link_reset = ax88179_link_reset, + .reset = ax88179_reset, + .stop = ax88179_stop, +- .flags = FLAG_ETHER | FLAG_FRAMING_AX, ++ .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .rx_fixup = ax88179_rx_fixup, + .tx_fixup = ax88179_tx_fixup, + }; +@@ -1913,7 +1913,7 @@ static const struct driver_info mct_info + .link_reset = ax88179_link_reset, + .reset = ax88179_reset, + .stop = ax88179_stop, +- .flags = FLAG_ETHER | FLAG_FRAMING_AX, ++ .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .rx_fixup = ax88179_rx_fixup, + .tx_fixup = ax88179_tx_fixup, + }; diff --git a/queue-5.15/series b/queue-5.15/series index 72a3929a090..d370363c473 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -192,3 +192,4 @@ tty-the-rest-stop-using-tty_schedule_flip.patch tty-drop-tty_schedule_flip.patch tty-extract-tty_flip_buffer_commit-from-tty_flip_buffer_push.patch tty-use-new-tty_insert_flip_string_and_push_buffer-in-pty_write.patch +net-usb-ax88179_178a-needs-flag_send_zlp.patch