Loading
usb: renesas_usbhs: fix spinlock suspected in a gadget complete function
[ Upstream commit 00f30d29b497577954b20237b405e9d22b5286c2 ] According to the gadget.h, a "complete" function will always be called with interrupts disabled. However, sometimes usbhsg_queue_pop() function is called with interrupts enabled. So, this function should be held by usbhs_lock() to disable interruption. Also, this driver has to call spin_unlock() to avoid spinlock recursion by this driver before calling usb_gadget_giveback_request(). Otherwise, there is possible to cause a spinlock suspected in a gadget complete function. Signed-off-by:Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Signed-off-by:
Felipe Balbi <balbi@ti.com> Signed-off-by:
Sasha Levin <sasha.levin@oracle.com>