summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVijayavardhan Vennapusa <vvreddy@codeaurora.org>2017-03-07 14:56:20 +0530
committerVijayavardhan Vennapusa <vvreddy@codeaurora.org>2017-03-07 14:56:20 +0530
commit59b6f2084388cc4c76c9738d7068e18099d8bfe7 (patch)
tree83e36ef92d1b657c4fb1dc060784f63e60a6dafd
parent783427f7ad16090b68801d1142c20df47bced74b (diff)
USB: composite: Fix double release of spin_unlock_irqsave
Commit b953b45ed08c ("USB: composite: Release spinlock before WARN()") introduced a bug where it leads to calling spin_unlock_ irq_save twice in case of delayed_status zero. Hence fix the issue by returning from composite_setup_continue() right after WARN() in case of delayed_status zero. Change-Id: I33c77ec8a2f97fcd94cffb416e57f3c77d6789f2 Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
-rw-r--r--drivers/usb/gadget/composite.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index 9622514e3df9..9d795489c285 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -2470,6 +2470,7 @@ void usb_composite_setup_continue(struct usb_composite_dev *cdev)
}
spin_unlock_irqrestore(&cdev->lock, flags);
WARN(cdev, "%s: Unexpected call\n", __func__);
+ return;
} else if (--cdev->delayed_status == 0) {
DBG(cdev, "%s: Completing delayed status\n", __func__);