|Subject:||Re: [Qemu-devel] Preliminary patch to implement ehci|
|Date:||Fri, 31 Oct 2008 13:54:45 -0700|
|User-agent:||Thunderbird 22.214.171.124 (X11/20080723)|
Anthony Liguori wrote:
Mark Burkley wrote:Hi Anthony, I have ehci built against trunk now but I am seeing an issue with a memory key I am using for testing. ioctl returns EPIPE (which I would have thought was a STALL) to an asynchronous IN completion in usb-linux.c but then this is returned as USB_RET_NAK to EHCI which confuses my WinXP target because the transfer is then never completed.Can I just check that it was intentional to return NAK for EPIPE returns in asynchronous completions? If so, then I will try todetect the stall in my implementation and treat differently to a NAK. It's just that if I modify usb-linux.c to return USB_RET_STALL on -EPIPE then it works fine.
I just looked at the usb-linuc.c:async_complete() code and it looks like it was intentional but I cannot remember why I wrote that way. And what you're saying makes sense. ie It should be a STALL. In fact I think that might fix the regression with USB storage devices that some people have reported. I'll play some more with this later today. I want to make sure that the change we're talking about does not break existing devices that I thoroughly tested as part of the usb async re-write. If everything works as expected then we'll change it.
btw It's awesome that you're working on EHCI. I was going to work on it right after making the stack fully async but got swamped with other things. Do you have a git tree I could pull your stuff from ?
|[Prev in Thread]||Current Thread||[Next in Thread]|