Anton Vorontsov a30551db66 USB: fsl_qe_udc: Fix recursive locking bug in ch9getstatus()
The call chain is this:

qe_udc_irq() <- grabs the udc->lock spinlock
rx_irq()
qe_ep0_rx()
ep0_setup_handle()
setup_received_handle()
ch9getstatus()
qe_ep_queue() <- tries to grab the udc->lock again

It seems unsafe to temporarily drop the lock in the ch9getstatus(),
so to fix that bug the lock-less __qe_ep_queue() function
implemented and used by the ch9getstatus().

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2009-02-09 11:19:46 -08:00
..
2009-01-07 09:59:58 -08:00
2009-01-07 09:59:58 -08:00
2008-10-22 10:05:28 -07:00
2008-11-13 14:45:06 -08:00
2008-10-17 14:40:53 -07:00
2009-01-07 17:24:34 -08:00
2009-01-07 10:00:11 -08:00
2009-01-27 16:15:37 -08:00
2009-01-07 10:00:11 -08:00
2009-01-05 11:54:28 -05:00
2009-01-07 10:00:11 -08:00
2009-01-07 10:00:11 -08:00
2008-07-21 15:16:10 -07:00
2009-01-07 10:00:02 -08:00
2008-07-21 15:16:10 -07:00
2009-01-07 18:05:39 -08:00
2008-10-17 14:40:53 -07:00
2008-10-16 09:24:46 -07:00