]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.7-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Feb 2013 17:37:55 +0000 (09:37 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Feb 2013 17:37:55 +0000 (09:37 -0800)
added patches:
usb-ehci-fix-for-leaking-isochronous-data.patch

queue-3.7/series
queue-3.7/usb-ehci-fix-for-leaking-isochronous-data.patch [new file with mode: 0644]

index 2b27a29c34d0e529f2818b99a5a91734f92c0f39..b62329058c597dcdd6a1262f895b33a83ba8d692 100644 (file)
@@ -32,3 +32,4 @@ xhci-fix-isoc-td-encoding.patch
 xhci-fix-td-size-for-isochronous-urbs.patch
 usb-xhci-fix-memory-leak-of-urb-private-data.patch
 usb-prevent-dead-ports-when-xhci-is-not-enabled.patch
+usb-ehci-fix-for-leaking-isochronous-data.patch
diff --git a/queue-3.7/usb-ehci-fix-for-leaking-isochronous-data.patch b/queue-3.7/usb-ehci-fix-for-leaking-isochronous-data.patch
new file mode 100644 (file)
index 0000000..3d27653
--- /dev/null
@@ -0,0 +1,35 @@
+From b09a61cc0bc2a7151f4ab652489e85253d5d0175 Mon Sep 17 00:00:00 2001
+From: Alan Stern <stern@rowland.harvard.edu>
+Date: Wed, 30 Jan 2013 16:35:02 -0500
+Subject: USB: EHCI: fix for leaking isochronous data
+
+From: Alan Stern <stern@rowland.harvard.edu>
+
+commit b09a61cc0bc2a7151f4ab652489e85253d5d0175 upstream.
+
+This patch (as1653) fixes a bug in ehci-hcd.  Unlike iTD entries, an
+siTD entry in the periodic schedule may not complete until the frame
+after the one it belongs to.  Consequently, when scanning the periodic
+schedule it is necessary to start with the frame _preceding_ the one
+where the previous scan ended.
+
+Not doing this properly can result in memory leaks and failures to
+complete isochronous URBs.
+
+Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
+Reported-and-tested-by: Andy Leiserson <andy@leiserson.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/host/ehci-sched.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/host/ehci-sched.c
++++ b/drivers/usb/host/ehci-sched.c
+@@ -2336,5 +2336,5 @@ restart:
+                       break;
+               frame = (frame + 1) & fmask;
+       }
+-      ehci->next_frame = now_frame;
++      ehci->next_frame = (frame - 1) & fmask;
+ }