Re: Spinlock recursion in usbnet + rndis-wlan

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jeremy Williams <jeremy.williams@...> writes:

> 
> I am currently using the rndis-wlan driver in 2.6.27 with a Linksys WUSB54GS 
> USB wifi module.  When I attempt to bring the interface down or remove the 
> rndis-wlan module, I am seeing a spinlock recursion bug when usbnet is 
> attempting to unlink the urbs from the device.


I have been poking into this more and discovered that those that are using EHCI
compliant host controllers based off the ehci-hcd driver will not see this issue
since completions are always performed asynchronously.  The urb_dequeue method
in the HCD driver returns immediately and relies on the HCD irq routine to call
the completion routine for the deleted urb thus avoiding the recursion.  

I have looked over all of the proprietary host controller drivers and the
following have the potential to call usb_hcd_giveback_urb directly, thus
resulting in the recursion.

isp116x-hcd.c
isp1760-hcd.c
r8a66597-hcd.c
sl811-hcd.c
u132-hcd.c

There is also the potential for the ochi-hcd driver to call usb_hcd_giveback_urb
directly if the host controller is no longer running.

Is it considered acceptable to call usb_hcd_giveback_urb directly from the
urb_dequeue routine or do these drivers need to be updated?


--
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

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux