Re: XHCI: Handling of Zero length packet in data stage

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

 



> On Thu, Oct 03, 2013 at 06:00:50PM -0000, hemantk@xxxxxxxxxxxxxx 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 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