[linux] 02/02: Revert "xhci: don't finish a TD if we get a short transfer event mid TD"

debian-kernel at lists.debian.org debian-kernel at lists.debian.org
Sat Jan 2 03:10:55 UTC 2016


This is an automated email from the git hooks/post-receive script.

benh pushed a commit to branch wheezy-security
in repository linux.

commit f066ced0ac9054d63e33c74721b61b6e7a26348c
Author: Ben Hutchings <ben at decadent.org.uk>
Date:   Sat Jan 2 03:07:16 2016 +0000

    Revert "xhci: don't finish a TD if we get a short transfer event mid TD"
    
    Closes: #808602, #808953, regression in 3.2.73
---
 debian/changelog                                   |  2 ++
 ...-t-finish-a-td-if-we-get-a-short-transfer.patch | 37 ++++++++++++++++++++++
 debian/patches/series                              |  1 +
 3 files changed, 40 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 5f49567..4ddd868 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -13,6 +13,8 @@ linux (3.2.73-2+deb7u2) UNRELEASED; urgency=medium
     (Closes: #808293, regression in 3.2.72)
   * drm/radeon: fix hotplug race at startup
     (Closes: #808973, regression in 3.4.110)
+  * Revert "xhci: don't finish a TD if we get a short transfer event mid TD"
+    (Closes: #808602, #808953, regression in 3.2.73)
 
  -- Ben Hutchings <ben at decadent.org.uk>  Sun, 27 Dec 2015 19:23:43 +0000
 
diff --git a/debian/patches/bugfix/all/revert-xhci-don-t-finish-a-td-if-we-get-a-short-transfer.patch b/debian/patches/bugfix/all/revert-xhci-don-t-finish-a-td-if-we-get-a-short-transfer.patch
new file mode 100644
index 0000000..f9a6ca5
--- /dev/null
+++ b/debian/patches/bugfix/all/revert-xhci-don-t-finish-a-td-if-we-get-a-short-transfer.patch
@@ -0,0 +1,37 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Sat, 02 Jan 2016 03:03:27 +0000
+Subject: Revert "xhci: don't finish a TD if we get a short transfer event mid TD"
+Bug-Debian: https://bugs.debian.org/808602
+Bug-Debian: https://bugs.debian.org/808953
+
+This reverts commit 7c6aca1947a312bcc23dc8e1000e4f13c7b43555, which
+was commit e210c422b6fdd2dc123bedc588f399aefd8bf9de upstream.  It
+caused serious regressions as referenced above.
+
+---
+--- a/drivers/usb/host/xhci-ring.c
++++ b/drivers/usb/host/xhci-ring.c
+@@ -2187,10 +2187,6 @@
+ 				EVENT_TRB_LEN(le32_to_cpu(event->transfer_len)));
+ 	/* Fast path - was this the last TRB in the TD for this URB? */
+ 	if (event_trb == td->last_trb) {
+-		if (td->urb_length_set && trb_comp_code == COMP_SHORT_TX)
+-			return finish_td(xhci, td, event_trb, event, ep,
+-					 status, false);
+-
+ 		if (EVENT_TRB_LEN(le32_to_cpu(event->transfer_len)) != 0) {
+ 			td->urb->actual_length =
+ 				td->urb->transfer_buffer_length -
+@@ -2242,12 +2238,6 @@
+ 			td->urb->actual_length +=
+ 				TRB_LEN(le32_to_cpu(cur_trb->generic.field[2])) -
+ 				EVENT_TRB_LEN(le32_to_cpu(event->transfer_len));
+-
+-		if (trb_comp_code == COMP_SHORT_TX) {
+-			xhci_dbg(xhci, "mid bulk/intr SP, wait for last TRB event\n");
+-			td->urb_length_set = true;
+-			return 0;
+-		}
+ 	}
+ 
+ 	return finish_td(xhci, td, event_trb, event, ep, status, false);
diff --git a/debian/patches/series b/debian/patches/series
index 912ec3f..016e277 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1189,3 +1189,4 @@ bugfix/x86/KVM-x86-Reload-pit-counters-for-all-channels-when-re.patch
 bugfix/all/revert-net-add-length-argument-to-skb_copy_and_csum_datagram_iovec.patch
 bugfix/all/udp-properly-support-msg_peek-with-truncated-buffers.patch
 bugfix/all/drm-radeon-fix-hotplug-race-at-startup.patch
+bugfix/all/revert-xhci-don-t-finish-a-td-if-we-get-a-short-transfer.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git



More information about the Kernel-svn-changes mailing list