Re: [PATCH] EHCI : Fix a regression in the ISO scheduler

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Since commit  811c926c538f7e8d3c08b630dd5844efd7e000f6 has been applied to stable trees, shouldn't this patch be applied to stable as well ?

--

Sander

Monday, November 28, 2011, 6:28:18 PM, you wrote:

> On Mon, 28 Nov 2011, Matthieu CASTET wrote:

>> Fix a regression that was introduced by commit
>> 811c926c538f7e8d3c08b630dd5844efd7e000f6 (USB: EHCI: fix HUB TT scheduling
>> issue with iso transfer).
>> 
>> We detect an error if next == start, but this means uframe 0 can't be allocated
>> anymore for iso transfer...
>> 
>> Reported-by: Sander Eikelenboom <linux@xxxxxxxxxxxxxx>
>> Signed-off-by: Matthieu CASTET <castet.matthieu@xxxxxxx>
>> ---
>>  drivers/usb/host/ehci-sched.c |    9 +++++----
>>  1 files changed, 5 insertions(+), 4 deletions(-)
>> 
>> diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
>> index 56a3203..a60679c 100644
>> --- a/drivers/usb/host/ehci-sched.c
>> +++ b/drivers/usb/host/ehci-sched.c
>> @@ -1475,6 +1475,7 @@ iso_stream_schedule (
>>        * jump until after the queue is primed.
>>        */
>>       else {
>> +             int done = 0;
>>               start = SCHEDULE_SLOP + (now & ~0x07);
>>  
>>               /* NOTE:  assumes URB_ISO_ASAP, to limit complexity/bugs */
>> @@ -1492,18 +1493,18 @@ iso_stream_schedule (
>>                       if (stream->highspeed) {
>>                               if (itd_slot_ok(ehci, mod, start,
>>                                               stream->usecs, period))
>> -                                     break;
>> +                                     done = 1;
>>                       } else {
>>                               if ((start % 8) >= 6)
>>                                       continue;
>>                               if (sitd_slot_ok(ehci, mod, stream,
>>                                               start, sched, period))
>> -                                     break;
>> +                                     done = 1;
>>                       }
>> -             } while (start > next);
>> +             } while (start > next && !done);
>>  
>>               /* no room in the schedule */
>> -             if (start == next) {
>> +             if (!done) {
>>                       ehci_dbg(ehci, "iso resched full %p (now %d max %d)\n",
>>                               urb, now, now + mod);
>>                       status = -ENOSPC;

> Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>

> I can't believe I missed that.  Must be getting old...

> Alan Stern




-- 
Best regards,
 Sander                            mailto:linux@xxxxxxxxxxxxxx

--
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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux