xhci: Revert more sg changes (see #738113)
svn path=/dists/sid/linux/; revision=21137
This commit is contained in:
parent
e662054434
commit
0d85e3551a
|
@ -1,3 +1,11 @@
|
|||
linux (3.13.5-2) UNRELEASED; urgency=medium
|
||||
|
||||
* xhci: Revert more sg changes (see #738113):
|
||||
- Revert "xhci 1.0: Limit arbitrarily-aligned scatter gather."
|
||||
- Revert "USBNET: ax88179_178a: enable tso if usb host supports sg dma"
|
||||
|
||||
-- Ben Hutchings <ben@decadent.org.uk> Sun, 09 Mar 2014 22:26:13 +0000
|
||||
|
||||
linux (3.13.5-1) unstable; urgency=medium
|
||||
|
||||
* New upstream stable update:
|
||||
|
|
57
debian/patches/bugfix/all/revert-usbnet-ax88179_178a-enable-tso-if-usb-host.patch
vendored
Normal file
57
debian/patches/bugfix/all/revert-usbnet-ax88179_178a-enable-tso-if-usb-host.patch
vendored
Normal file
|
@ -0,0 +1,57 @@
|
|||
From: Mathias Nyman <mathias.nyman@linux.intel.com>
|
||||
Subject: [PATCH 2/2] Revert "USBNET: ax88179_178a: enable tso if usb host supports sg dma"
|
||||
Date: Fri, 7 Mar 2014 17:06:58 +0200
|
||||
Origin: http://permalink.gmane.org/gmane.linux.kernel/1662582
|
||||
|
||||
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>
|
||||
---
|
||||
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 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;
|
||||
--
|
||||
1.8.1.2
|
||||
|
72
debian/patches/bugfix/all/revert-xhci-1.0-limit-arbitrarilyaligned-scatter-gather.patch
vendored
Normal file
72
debian/patches/bugfix/all/revert-xhci-1.0-limit-arbitrarilyaligned-scatter-gather.patch
vendored
Normal file
|
@ -0,0 +1,72 @@
|
|||
From: Mathias Nyman <mathias.nyman@linux.intel.com>
|
||||
Subject: [PATCH 1/2] Revert "xhci 1.0: Limit arbitrarily-aligned scatter gather."
|
||||
Date: Fri, 7 Mar 2014 17:06:57 +0200
|
||||
Origin: http://permalink.gmane.org/gmane.linux.kernel.stable/83276
|
||||
|
||||
This reverts commit 247bf557273dd775505fb9240d2d152f4f20d304.
|
||||
|
||||
This commit, together with commit 3804fad45411b48233b48003e33a78f290d227c8
|
||||
"USBNET: ax88179_178a: enable tso if usb host supports sg dma" 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 required, but for now
|
||||
this patch needs to be reverted to get USB 3.0 mass storage devices working at the
|
||||
level they used to.
|
||||
|
||||
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
|
||||
Cc: stable <stable@vger.kernel.org>
|
||||
---
|
||||
drivers/usb/host/xhci.c | 14 +++-----------
|
||||
1 file changed, 3 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
|
||||
index 6fe577d..924a6cc 100644
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -4733,6 +4733,9 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
|
||||
/* Accept arbitrarily long scatter-gather lists */
|
||||
hcd->self.sg_tablesize = ~0;
|
||||
|
||||
+ /* support to build packet from discontinuous buffers */
|
||||
+ hcd->self.no_sg_constraint = 1;
|
||||
+
|
||||
/* XHCI controllers don't stop the ep queue on short packets :| */
|
||||
hcd->self.no_stop_on_short = 1;
|
||||
|
||||
@@ -4757,14 +4760,6 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
|
||||
/* xHCI private pointer was set in xhci_pci_probe for the second
|
||||
* registered roothub.
|
||||
*/
|
||||
- xhci = hcd_to_xhci(hcd);
|
||||
- /*
|
||||
- * Support arbitrarily aligned sg-list entries on hosts without
|
||||
- * TD fragment rules (which are currently unsupported).
|
||||
- */
|
||||
- if (xhci->hci_version < 0x100)
|
||||
- hcd->self.no_sg_constraint = 1;
|
||||
-
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -4793,9 +4788,6 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
|
||||
if (xhci->hci_version > 0x96)
|
||||
xhci->quirks |= XHCI_SPURIOUS_SUCCESS;
|
||||
|
||||
- if (xhci->hci_version < 0x100)
|
||||
- hcd->self.no_sg_constraint = 1;
|
||||
-
|
||||
/* Make sure the HC is halted. */
|
||||
retval = xhci_halt(xhci);
|
||||
if (retval)
|
||||
--
|
||||
1.8.1.2
|
||||
|
|
@ -80,3 +80,5 @@ bugfix/all/i2c-designware-remove-HAVE_CLK-build-dependecy.patch
|
|||
debian/snd-pcsp-disable-autoload.patch
|
||||
bugfix/all/bluetooth-allocate-static-minor-for-vhci.patch
|
||||
bugfix/all/rtl8187-fix-regression-on-MIPS-without-coherent-DMA.patch
|
||||
bugfix/all/revert-xhci-1.0-limit-arbitrarilyaligned-scatter-gather.patch
|
||||
bugfix/all/revert-usbnet-ax88179_178a-enable-tso-if-usb-host.patch
|
||||
|
|
Loading…
Reference in New Issue