> 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