USB: usb serial gadget smp related bug
authorEugeny S. Mints <emints@ru.mvista.com>
Sat, 2 Sep 2006 10:59:19 +0000 (03:59 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 27 Sep 2006 18:58:56 +0000 (11:58 -0700)
commit80f8af0c59385b41564a3ae670f94a1b4caa43b2
treec2721898c3db66f743639a8446d72c48ebd11950
parent0e3c8c26c7013b9d34929857598fd86ff1c22a6c
USB: usb serial gadget smp related bug

Adjust dev->dev_lock spinlock lock/unlock calls to be safe for SMP case.
Otherwise the following sequence may lead to a deadlock in SMP case:

gs_send()->usb_ep_queue()
->(in case a request is satisfied immediatly) gs_write_complete()

for ex for pxa2xx_udc.c:
usb_ep_queue()->pxa2xx_ep_queue()->write_fifo()->done()->gs_write_complete()
(through req.complete pointer)

Signed-off-by: Eugeny S. Mints <emints@ru.mvista.com>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/gadget/serial.c