diff options
| author | Vijayavardhan Vennapusa <vvreddy@codeaurora.org> | 2017-01-20 11:24:02 +0530 |
|---|---|---|
| committer | Vijayavardhan Vennapusa <vvreddy@codeaurora.org> | 2017-01-20 15:46:54 +0530 |
| commit | bd8ed2fcf3eac426ef9650c00c94b71c10980ddd (patch) | |
| tree | c3f14f82aad9ed0aebe75295af51db5ae71bd613 /drivers/usb/gadget/function | |
| parent | 2f817b68f06ed866aa2c4cc35b2e4293aeb1ef99 (diff) | |
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 <vvreddy@codeaurora.org>
Diffstat (limited to 'drivers/usb/gadget/function')
| -rw-r--r-- | drivers/usb/gadget/function/u_data_ipa.c | 8 |
1 files 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); |
