From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751581AbbCTLmB (ORCPT ); Fri, 20 Mar 2015 07:42:01 -0400 Received: from foss.arm.com ([217.140.101.70]:39938 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751037AbbCTLl7 (ORCPT ); Fri, 20 Mar 2015 07:41:59 -0400 From: Sudeep Holla To: Felipe Balbi , linux-usb@vger.kernel.org Cc: Sudeep Holla , Dan Carpenter , linux-kernel@vger.kernel.org, Laurent Pinchart Subject: [PATCH] usb: isp1760: fix spin unlock in the error path of isp1760_udc_start Date: Fri, 20 Mar 2015 11:42:17 +0000 Message-Id: <1426851737-24999-1-git-send-email-sudeep.holla@arm.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit a124820de5fd ("usb: isp1760: fix possible deadlock in isp1760_udc_irq") replaced spin_{un,}lock with spin_{un,}lock_irq{save,restore}. However it missed an error path resulting in the smatch warning as below: drivers/usb/isp1760/isp1760-udc.c:1230 isp1760_udc_start() warn: inconsistent returns 'irqsave:flags'. Locked on: line 1207 Unlocked on: line 1199 This patch fixes the spin unlock in the error path in isp1760_udc_start thereby removing the smatch warning mentioned above. Reported-by: Dan Carpenter Cc: Laurent Pinchart Cc: Felipe Balbi Signed-off-by: Sudeep Holla --- drivers/usb/isp1760/isp1760-udc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Hi Laurent, Felipe, I am extremely sorry for missing this in my original patch. Thanks to Dan Carpenter for reporting this. Regards, Sudeep diff --git a/drivers/usb/isp1760/isp1760-udc.c b/drivers/usb/isp1760/isp1760-udc.c index fbfbd59aae64..b7094eee0bdd 100644 --- a/drivers/usb/isp1760/isp1760-udc.c +++ b/drivers/usb/isp1760/isp1760-udc.c @@ -1203,7 +1203,7 @@ static int isp1760_udc_start(struct usb_gadget *gadget, if (udc->driver) { dev_err(udc->isp->dev, "UDC already has a gadget driver\n"); - spin_unlock(&udc->lock); + spin_unlock_irqrestore(&udc->lock, flags); return -EBUSY; } -- 1.9.1