On Tue, 23 Apr 2013, linux fddl wrote:
Recently, I test my usb host driver(not ehci or any widely used usb
host) with a Ralink's wifi device(use a linux-3.0.39 kernel).
But, if transferring data through FTP for a long time, I found that
usb_hcd_link_urb_to_ep() (It is called by hcd's urb_enqueue function)
returns -EPERM sometimes.
After digging Ralink's wifi driver, I found, it seems that my host
driver some time try to link a killing urb to ep.
(The calling path of usb_kill_urb() is:
rt2x00usb_watchdog()-rt2x00usb_dma_timeout()-rt2x00queue_dma_timeout()-rt2x00usb_watchdog_tx_dma()-rt2x00queue_flush_queue()-rt2x00usb_flush_queue()-rt2x00queue_for_each_entry()-rt2x00usb_flush_entry()-usb_kill_urb()�
)
What I hope to know is: it a right result? or it seems there is a bug
in my driver?or because my driver's speed is not high enough(It seems
that it happends more frequently in a low speed)?
It is correct for usb_hcd_link_urb_to_ep() to return -EPERM while the
URB is being killed.
I don't know if there are any bugs in your driver.
Alan Stern
--
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