summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHemant Kumar <hemantk@codeaurora.org>2016-04-14 11:39:00 -0700
committerJeevan Shriram <jshriram@codeaurora.org>2016-04-22 15:04:06 -0700
commit599b6b32a0681200ad943c13eeee98f0f1829ff4 (patch)
tree899579a189ce0a754077170f668ff29af598881d
parenta431c4747feb192a708d050a751c18b7fbffb98b (diff)
usb: gadget: f_gsi: Fix bug in accessing evt queue lock
In case gsi_update_function_bind_params() returns failure before initializing spin lock for event queue, gsi_bind() continues further by calling post_event() which acquires the uninitialized spin lock causing BUG. Hence check for return value of gsi_update_function_bind_params() before calling post_event(). CRs-Fixed: 1003784 Change-Id: I0fcad2467d15f311feecf3b9cee9209f7453485c Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
-rw-r--r--drivers/usb/gadget/function/f_gsi.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/usb/gadget/function/f_gsi.c b/drivers/usb/gadget/function/f_gsi.c
index ea86bd9aad60..5a4aeca225d8 100644
--- a/drivers/usb/gadget/function/f_gsi.c
+++ b/drivers/usb/gadget/function/f_gsi.c
@@ -2486,6 +2486,8 @@ static int gsi_bind(struct usb_configuration *c, struct usb_function *f)
}
status = gsi_update_function_bind_params(gsi, cdev, &info);
+ if (status)
+ goto dereg_rndis;
post_event(&gsi->d_port, EVT_INITIALIZED);
queue_work(gsi->d_port.ipa_usb_wq, &gsi->d_port.usb_ipa_w);