Blob Blame History Raw
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