Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2e6480db authored by Chandana Kishori Chiluveru's avatar Chandana Kishori Chiluveru Committed by Gerrit - the friendly Code Review server
Browse files

USB: composite: Release spinlock before WARN()



if WARN() is called under spinlock, it will lead crash due to
watchdog timeout. Hence fix it by releasing spinlock before calling
WARN(). And also check cdev->config is NULL or not before calling
WARN().

Change-Id: Iebd00932b94164e9f40aa6126a2352437b1141ed
Signed-off-by: default avatarVijayavardhan Vennapusa <vvreddy@codeaurora.org>
Signed-off-by: default avatarChandana Kishori Chiluveru <cchiluve@codeaurora.org>
parent a2839ca3
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -2505,7 +2505,13 @@ 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__);
		return;

	} else if (--cdev->delayed_status == 0) {
		DBG(cdev, "%s: Completing delayed status\n", __func__);