summaryrefslogtreecommitdiff
path: root/drivers/usb
diff options
context:
space:
mode:
authorVijayavardhan Vennapusa <vvreddy@codeaurora.org>2017-02-02 16:51:27 +0530
committerVijayavardhan Vennapusa <vvreddy@codeaurora.org>2017-02-08 14:29:20 +0530
commit94cd6c197a4fa0cf9e37e6a9995a333f59e712d6 (patch)
treef745ab84e4b25c8e16550c690a309e2e0163d8ce /drivers/usb
parent110e102fe3de3bf08fcdb3f2117530f632c5a99f (diff)
USB: u_data_ipa: Fix pm_runtime usage count in case of error
If disconnect happens before connect_work start executing, then there is a chance that connect_work returns with port_usb NULL. Due to this, port->is_connected will be NULL and disconnect_work returns with this check, but not decremented pm_usage count, which is incremented before scheduling connect_work in ipa_data_connect. Hence fix this by decrementing pm_usage count in connect_work if port_usb is NULL. Change-Id: Ic60f2addcf07375429e0858d3c7a376a35132750 Signed-off-by: Vijayavardhan Vennapusa <vvreddy@codeaurora.org>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/gadget/function/u_data_ipa.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/gadget/function/u_data_ipa.c b/drivers/usb/gadget/function/u_data_ipa.c
index 6c18a04f6c1c..83a98f1196f8 100644
--- a/drivers/usb/gadget/function/u_data_ipa.c
+++ b/drivers/usb/gadget/function/u_data_ipa.c
@@ -402,6 +402,7 @@ static void ipa_data_connect_work(struct work_struct *w)
if (!port->port_usb) {
spin_unlock_irqrestore(&port->port_lock, flags);
+ usb_gadget_autopm_put_async(port->gadget);
pr_err("%s(): port_usb is NULL.\n", __func__);
return;
}