summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2013-01-30 16:35:02 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-02-11 09:04:46 -0800
commitd7da09805d410e24ea7d79990e9a2055e19e267e (patch)
tree3fa9d1f2883930e5269008d4a9a361063ab05515
parent43f6cfceea3a9f094da2842e7c9a763b1efdd1a4 (diff)
downloadlwn-d7da09805d410e24ea7d79990e9a2055e19e267e.tar.gz
lwn-d7da09805d410e24ea7d79990e9a2055e19e267e.zip
USB: EHCI: fix for leaking isochronous data
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>
-rw-r--r--drivers/usb/host/ehci-sched.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
index 838e5716e41a..c41063dc6a24 100644
--- 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;
}