summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2017-03-01 02:23:00 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-03-01 02:23:00 -0800
commitfb1f77e5a69c3d63dd1c1511cdf677128a483261 (patch)
tree766d705907e57343fd563b7adcbf63578f4e141b /drivers/usb
parent307e1d36070e7ea9ed46466901cd067e26d647cc (diff)
parent6d0d3f22227ab4b16b077079fc99c0ed09fd4e32 (diff)
Merge "USB: composite: Release spinlock before WARN()"
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/gadget/composite.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index a53b23789d7a..018f539054fe 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -2461,6 +2461,11 @@ void usb_composite_setup_continue(struct usb_composite_dev *cdev)
spin_lock_irqsave(&cdev->lock, flags);
if (cdev->delayed_status == 0) {
+ if (!cdev->config) {
+ spin_unlock_irqrestore(&cdev->lock, flags);
+ return;
+ }
+ spin_unlock_irqrestore(&cdev->lock, flags);
WARN(cdev, "%s: Unexpected call\n", __func__);
} else if (--cdev->delayed_status == 0) {