51 lines
1.9 KiB
Diff
51 lines
1.9 KiB
Diff
From 1b4b61e873240faea96995cd87cfbe7bc51a2b39 Mon Sep 17 00:00:00 2001
|
|
From: Sarah Sharp <sarah.a.sharp@linux.intel.com>
|
|
Date: Tue, 04 Mar 2014 22:23:47 +0000
|
|
Subject: Revert "USBNET: ax88179_178a: enable tso if usb host supports sg dma"
|
|
|
|
This reverts commit 3804fad45411b48233b48003e33a78f290d227c8.
|
|
|
|
The xHCI driver does not implement TD fragment rules yet, so we can't
|
|
properly support arbitrary-length scatter gather. USB storage seems
|
|
immune to these issues, and only the ASIX host seems to hit them, so
|
|
disable scatter gather.
|
|
|
|
Note that we can't simply work around this by clearing the
|
|
no_sg_constraint flag for 1.0 xHCI hosts that need TD fragments (and
|
|
thus would cause the ASIX chipsets to drop packets). We tried that with
|
|
commit 247bf557273d "xhci 1.0: Limit arbitrarily-aligned scatter
|
|
gather." We found that commit breaks USB 3.0 mass storage devices. It
|
|
needs to get reverted, and this commit needs to get reverted before it
|
|
to avoid dropped packets with the ASIX ethernet adapters.
|
|
|
|
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
|
|
Cc: stable@vger.kernel.org # 3.12
|
|
---
|
|
diff --git a/drivers/net/usb/ax88179_178a.c b/drivers/net/usb/ax88179_178a.c
|
|
index 955df81..42085e6 100644
|
|
--- a/drivers/net/usb/ax88179_178a.c
|
|
+++ b/drivers/net/usb/ax88179_178a.c
|
|
@@ -1029,20 +1029,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;
|
|
--
|
|
cgit v0.9.2
|