The check_intr_schedule() routine in ehci-hcd looks at the wrong microframes when checking to see if a full-speed or low-speed interrupt endpoint will fit in the periodic schedule. If the Start-Split transaction is scheduled for microframe N then the Complete-Split transactions get scheduled for microframes N+2, N+3, and N+4. However the code considers N+1, N+2, and N+3 instead. This patch fixes the limits on the "for" loop and also improves the use of whitespace. Signed-off-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> --- [as1715] drivers/usb/host/ehci-sched.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: usb-3.11/drivers/usb/host/ehci-sched.c =================================================================== --- usb-3.11.orig/drivers/usb/host/ehci-sched.c +++ usb-3.11/drivers/usb/host/ehci-sched.c @@ -761,7 +761,7 @@ static int check_intr_schedule ( unsigned i; /* TODO : this may need FSTN for SSPLIT in uframe 5. */ - for (i=uframe+1; i<8 && i<uframe+4; i++) + for (i = uframe+2; i < 8 && i <= uframe+4; i++) if (!check_period (ehci, frame, i, qh->period, qh->c_usecs)) goto done; -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html