Re: [PATCH] usb: gadget: dummy_hcd: emulate sending zlp in packet logic

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

 



On 09/11/2015 07:20 PM, Alan Stern wrote:
> On Fri, 11 Sep 2015, Igor Kotrasinski wrote:
>
>> currently, when a zlp flag is set and an urb/usb_request
>> buffer is filled without a short packet, transfer() leaves
>> its status at -EINPROGRESS and does not rescan for short
>> packet.
>>
>> In a scenario where ep.maxpacket bytes are copied,
>> URB_ZERO_PACKET is set, urb buffer is filled and usb_request
>> buffer is not, transfer() returns with an urb with
>> -EINPROGRESS status, which dummy_hcd treats as incomplete
>> transfer.
>>
>> Check for zlp and rescan appropriately.
>>
>> Signed-off-by: Igor Kotrasinski <i.kotrasinsk@xxxxxxxxxxx>
> Acked-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
>
> I can't believe we missed this for so long...  This should be marked
> for -stable.
>
> While you're at it, you might like to clean up a few other things.  For 
> example, just before the code changed in this patch we have:
>
> 			...
> 			} else if (to_host) {
> 			...
> 			} else if (!to_host) {
> 			...
>
> Obviously the "if (!to_host)" test is unnecessary.
>
> Also, a little above that we have:
>
> 			is_short = (len % ep->ep.maxpacket) != 0;
>
> But at this point we know that len != 0, and we also know that if len
>> = ep->ep.maxpacket then in fact len is a multiple of ep->ep.maxpacket.  
> Hence the computation can be simplified to:
>
> 			is_short = (len < ep->ep.maxpacket);
>
> Alan Stern
>
>
I found and fixed a handful of issues, sending in a v2 patchset.

Igor Kotrasiński
--
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