hi: 2011/1/2 Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>: > On Sat, 1 Jan 2011, vichy wrote: > >> after tracing the source code, I found usb_hcd_giveback_urb will be >> called in ehci_urb_done when interrupt happen and that is the normal >> path. > > Yes. > >> But what makes me confuse is when timeout happen such as >> wait_for_completion_timeout in usb_start_wait_urb, which function will >> call usb_hcd_giveback_urb and bring -2 to it originally I guess maybe >> the ehci_watchdog, but I think it is not, because the function has no >> idea of the time out parameter, right? > > No, not ehci_watchdog. It's the same function as above, ehci_urb_done. > >> BTW, under what circumstance the status of urb will be -150? >> I grep include/linux and didn't find amy error number which is -150. >> appreciate your kind help :) > > include/linux is not the right directory. You should be looking in > arch/*/include/asm and include/asm-generic/errno*.h. If you are using > an x86 architecture then the URB status should never be -150. But if > you are using a MIPS architecture then -150 is the same as > -EINPROGRESS. >From your suggestion it seems the error number has levels, I mean from xx to yy I can search in include/linux but from yy to zz, I have to search from some where? Would you mind telling me the rule? appreciate your help, vichy -- 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