> On Thu, Oct 03, 2013 at 06:00:50PM -0000, hema...@codeaurora.org wrote:
>> We have devices which require to send zero length packet in data stage
>> to
>> host in certain cases. We were not seeing any issue when we were using
>> ehci based controller. When we switched to XHCI here is what we are
>> observing:-
>>
>> For IN DATA dir control xfer XHCI sets ISP so xhci updates actual_length
>> for short packet in data stage using event->transfer_len.
>>
>> But for data packets not short xhci directly uses
>> urb->transfer_buffer_length as actual_length.This is done assuming data
>> stage will never have zero length (short packet) data packet. Once
>> Device
>> sends zero length packet in data stage
>> ISP triggers and actual_length is updated with value 0. Then later in
>> status stage (since urb->actual_length is zero) driver incorrectly sets
>> actual_length with urb->transfer_buffer_length.
>>
>>
>> I would like to get insight from  linux-usb grp to fix this issue.
>
> What kernel version are you seeing these problems?
>
> thanks,
>
> greg k-h
>

i am using 3.10 kernel. Also i looked at tip i see same implementation for
process_ctrl_td()

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/usb/host/xhci-ring.c

Thanks,
Hemant



--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to