diff --git a/[refs] b/[refs] index ce3af8eca580..26ae611c3305 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6da9c99059bf24fb1faae6b9613bae64ea50c05e +refs/heads/master: b2bdf3a789162aa6ff9c6f139bee9cc7954bc5b4 diff --git a/trunk/drivers/usb/gadget/composite.c b/trunk/drivers/usb/gadget/composite.c index 5d11c291f1ad..40f1da77a006 100644 --- a/trunk/drivers/usb/gadget/composite.c +++ b/trunk/drivers/usb/gadget/composite.c @@ -149,16 +149,17 @@ int __init usb_add_function(struct usb_configuration *config, int usb_function_deactivate(struct usb_function *function) { struct usb_composite_dev *cdev = function->config->cdev; + unsigned long flags; int status = 0; - spin_lock(&cdev->lock); + spin_lock_irqsave(&cdev->lock, flags); if (cdev->deactivations == 0) status = usb_gadget_disconnect(cdev->gadget); if (status == 0) cdev->deactivations++; - spin_unlock(&cdev->lock); + spin_unlock_irqrestore(&cdev->lock, flags); return status; }