Revert "xhci: don't finish a TD if we get a short transfer event mid TD"
Closes: #808602, #808953, regression in 4.3-rc7
This commit is contained in:
parent
50c5af2358
commit
eafb4c30fd
|
@ -17,6 +17,8 @@ linux (4.3.3-3) UNRELEASED; urgency=medium
|
|||
* [x86] drm/i915: Don't compare has_drrs strictly in pipe config
|
||||
(Closes: #808720)
|
||||
* [armhf] crypto: sun4i-ss - add missing statesize (Closes: #808625)
|
||||
* Revert "xhci: don't finish a TD if we get a short transfer event mid TD"
|
||||
(Closes: #808602, #808953, regression in 4.3-rc7)
|
||||
|
||||
[ Salvatore Bonaccorso ]
|
||||
* ovl: fix permission checking for setattr (CVE-2015-8660)
|
||||
|
|
37
debian/patches/bugfix/all/revert-xhci-don-t-finish-a-td-if-we-get-a-short-transfer.patch
vendored
Normal file
37
debian/patches/bugfix/all/revert-xhci-don-t-finish-a-td-if-we-get-a-short-transfer.patch
vendored
Normal file
|
@ -0,0 +1,37 @@
|
|||
From: Ben Hutchings <ben@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 dbd81f75b991c972970764ba75287cbbc8f066be, 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
|
||||
@@ -2191,10 +2191,6 @@ static int process_bulk_intr_td(struct x
|
||||
}
|
||||
/* Fast path - was this the last TRB in the TD for this URB? */
|
||||
} else 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 -
|
||||
@@ -2246,12 +2242,6 @@ static int process_bulk_intr_td(struct x
|
||||
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);
|
|
@ -131,3 +131,4 @@ bugfix/x86/KVM-x86-Reload-pit-counters-for-all-channels-when-re.patch
|
|||
bugfix/all/drm-nouveau-pmu-do-not-assume-a-pmu-is-present.patch
|
||||
bugfix/x86/drm-i915-don-t-compare-has_drrs-strictly-in-pipe-con.patch
|
||||
bugfix/arm/crypto-sun4i-ss-add-missing-statesize.patch
|
||||
bugfix/all/revert-xhci-don-t-finish-a-td-if-we-get-a-short-transfer.patch
|
||||
|
|
Loading…
Reference in New Issue