--- /dev/null
+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;
+ }