|
@@ -1730,8 +1730,9 @@ static void
|
|
|
gadgetfs_disconnect (struct usb_gadget *gadget)
|
|
|
{
|
|
|
struct dev_data *dev = get_gadget_data (gadget);
|
|
|
+ unsigned long flags;
|
|
|
|
|
|
- spin_lock (&dev->lock);
|
|
|
+ spin_lock_irqsave (&dev->lock, flags);
|
|
|
if (dev->state == STATE_DEV_UNCONNECTED)
|
|
|
goto exit;
|
|
|
dev->state = STATE_DEV_UNCONNECTED;
|
|
@@ -1740,7 +1741,7 @@ gadgetfs_disconnect (struct usb_gadget *gadget)
|
|
|
next_event (dev, GADGETFS_DISCONNECT);
|
|
|
ep0_readable (dev);
|
|
|
exit:
|
|
|
- spin_unlock (&dev->lock);
|
|
|
+ spin_unlock_irqrestore (&dev->lock, flags);
|
|
|
}
|
|
|
|
|
|
static void
|