mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 14:41:39 +00:00
USB: correct locking in gadgetfs_disconnect
This patch moves spin_lock (&dev->lock) before first use of dev. I think that test to the state of device should be protected with this spin_lock... Signed-off-by: Milan Svoboda <msvoboda@ra.rockwell.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
17efe15525
commit
07cb7f23d0
@ -1696,16 +1696,17 @@ gadgetfs_disconnect (struct usb_gadget *gadget)
|
||||
{
|
||||
struct dev_data *dev = get_gadget_data (gadget);
|
||||
|
||||
spin_lock (&dev->lock);
|
||||
if (dev->state == STATE_UNCONNECTED) {
|
||||
DBG (dev, "already unconnected\n");
|
||||
return;
|
||||
goto exit;
|
||||
}
|
||||
dev->state = STATE_UNCONNECTED;
|
||||
|
||||
INFO (dev, "disconnected\n");
|
||||
spin_lock (&dev->lock);
|
||||
next_event (dev, GADGETFS_DISCONNECT);
|
||||
ep0_readable (dev);
|
||||
exit:
|
||||
spin_unlock (&dev->lock);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user