diff options
| author | Vijayavardhan Vennapusa <vvreddy@codeaurora.org> | 2017-03-07 14:56:20 +0530 |
|---|---|---|
| committer | Vijayavardhan Vennapusa <vvreddy@codeaurora.org> | 2017-03-07 14:56:20 +0530 |
| commit | 59b6f2084388cc4c76c9738d7068e18099d8bfe7 (patch) | |
| tree | 83e36ef92d1b657c4fb1dc060784f63e60a6dafd | |
| parent | 783427f7ad16090b68801d1142c20df47bced74b (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.c | 1 |
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__); |
