usb: ralink: Is it right that usb_hcd_link_urb_to_ep() returns -EPERM?

2013-04-23 Thread linux fddl
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)?
--
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


Re: usb: ralink: Is it right that usb_hcd_link_urb_to_ep() returns -EPERM?

2013-04-23 Thread Alan Stern
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