60 lines
2.3 KiB
Diff
60 lines
2.3 KiB
Diff
|
From f6e78426d8e14db98f34e1db60846c883714e5cb Mon Sep 17 00:00:00 2001
|
||
|
From: Mathias Nyman <mathias.nyman@linux.intel.com>
|
||
|
Date: Fri, 7 Mar 2014 17:06:58 +0200
|
||
|
Subject: [PATCH 2/2] Revert "USBNET: ax88179_178a: enable tso if usb host
|
||
|
supports sg dma"
|
||
|
|
||
|
This reverts commit 3804fad45411b48233b48003e33a78f290d227c8.
|
||
|
|
||
|
This commit, together with commit 247bf557273dd775505fb9240d2d152f4f20d304
|
||
|
"xhci 1.0: Limit arbitrarily-aligned scatter gather." were
|
||
|
origially added to get xHCI 1.0 hosts and usb ethernet ax88179_178a devices
|
||
|
working together with scatter gather. xHCI 1.0 hosts pose some requirement on how transfer
|
||
|
buffers are aligned, setting this requirement for 1.0 hosts caused USB 3.0 mass
|
||
|
storage devices to fail more frequently.
|
||
|
|
||
|
USB 3.0 mass storage devices used to work before 3.14-rc1. Theoretically,
|
||
|
the TD fragment rules could have caused an occasional disk glitch.
|
||
|
Now the devices *will* fail, instead of theoretically failing.
|
||
|
>From a user perspective, this looks like a regression; the USB device obviously
|
||
|
fails on 3.14-rc1, and may sometimes silently fail on prior kernels.
|
||
|
|
||
|
The proper soluition is to implement the TD fragment rules for xHCI 1.0 hosts,
|
||
|
but for now, revert this patch until scatter gather can be properly supported.
|
||
|
|
||
|
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
|
||
|
Cc: stable <stable@vger.kernel.org>
|
||
|
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||
|
---
|
||
|
drivers/net/usb/ax88179_178a.c | 8 --------
|
||
|
1 file changed, 8 deletions(-)
|
||
|
|
||
|
diff --git a/drivers/net/usb/ax88179_178a.c b/drivers/net/usb/ax88179_178a.c
|
||
|
index 7056b9d..e62141b 100644
|
||
|
--- a/drivers/net/usb/ax88179_178a.c
|
||
|
+++ b/drivers/net/usb/ax88179_178a.c
|
||
|
@@ -1030,20 +1030,12 @@ static int ax88179_bind(struct usbnet *dev, struct usb_interface *intf)
|
||
|
dev->mii.phy_id = 0x03;
|
||
|
dev->mii.supports_gmii = 1;
|
||
|
|
||
|
- if (usb_device_no_sg_constraint(dev->udev))
|
||
|
- dev->can_dma_sg = 1;
|
||
|
-
|
||
|
dev->net->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
|
||
|
NETIF_F_RXCSUM;
|
||
|
|
||
|
dev->net->hw_features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM |
|
||
|
NETIF_F_RXCSUM;
|
||
|
|
||
|
- if (dev->can_dma_sg) {
|
||
|
- dev->net->features |= NETIF_F_SG | NETIF_F_TSO;
|
||
|
- dev->net->hw_features |= NETIF_F_SG | NETIF_F_TSO;
|
||
|
- }
|
||
|
-
|
||
|
/* Enable checksum offload */
|
||
|
*tmp = AX_RXCOE_IP | AX_RXCOE_TCP | AX_RXCOE_UDP |
|
||
|
AX_RXCOE_TCPV6 | AX_RXCOE_UDPV6;
|
||
|
--
|
||
|
1.9.0
|
||
|
|