From bd8ed2fcf3eac426ef9650c00c94b71c10980ddd Mon Sep 17 00:00:00 2001 From: Vijayavardhan Vennapusa Date: Fri, 20 Jan 2017 11:24:02 +0530 Subject: USB: u_data_ipa: Fix spinlock usage in resume_work handler Fix spinlock usage in bam2bam_data_resume_work handler that could cause error reported by static analysis tool. Change-Id: I15bbb5abc98452fcfed2d98547a859a355a391d9 Signed-off-by: Vijayavardhan Vennapusa --- drivers/usb/gadget/function/u_data_ipa.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/usb/gadget/function/u_data_ipa.c b/drivers/usb/gadget/function/u_data_ipa.c index 2d0cd30c0641..f72834adc0d9 100644 --- a/drivers/usb/gadget/function/u_data_ipa.c +++ b/drivers/usb/gadget/function/u_data_ipa.c @@ -1107,18 +1107,18 @@ static void bam2bam_data_resume_work(struct work_struct *w) unsigned long flags; int ret; - if (!port->port_usb->cdev) { - pr_err("!port->port_usb->cdev is NULL"); + spin_lock_irqsave(&port->port_lock, flags); + if (!port->port_usb || !port->port_usb->cdev) { + pr_err("port->port_usb or cdev is NULL"); goto exit; } if (!port->port_usb->cdev->gadget) { - pr_err("!port->port_usb->cdev->gadget is NULL"); + pr_err("port->port_usb->cdev->gadget is NULL"); goto exit; } pr_debug("%s: resume started\n", __func__); - spin_lock_irqsave(&port->port_lock, flags); gadget = port->port_usb->cdev->gadget; if (!gadget) { spin_unlock_irqrestore(&port->port_lock, flags); -- cgit v1.2.3