diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c index afef3df..29bec34 100644 --- a/drivers/usb/host/ehci-sched.c +++ b/drivers/usb/host/ehci-sched.c @@ -1480,15 +1480,10 @@ iso_stream_schedule ( /* NOTE: assumes URB_ISO_ASAP, to limit complexity/bugs */ - /* find a uframe slot with enough bandwidth. - * Early uframes are more precious because full-speed - * iso IN transfers can't use late uframes, - * and therefore they should be allocated last. - */ - next = start; - start += period; - do { - start--; + /* find a uframe slot with enough bandwidth */ + next = start + period; + for (; start < next; start++) { + /* check schedule: enough space? */ if (stream->highspeed) { if (itd_slot_ok(ehci, mod, start, @@ -1501,7 +1496,7 @@ iso_stream_schedule ( start, sched, period)) break; } - } while (start > next); + } /* no room in the schedule */ if (start == next) {