summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMayank Rana <mrana@codeaurora.org>2015-04-28 10:39:56 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-22 11:06:47 -0700
commit7d2a036a4e375342d673bf9662e56b190cc9dd55 (patch)
tree37446d6335ffebf1f5ff07e38c3a9b491152f87a
parent710341d1cf193af882e8003115a909867a6d764e (diff)
dwc3: gadget: Add NULL check against endpoint's desc in set_halt()
In few instances, dwc3_gadget_ep_set_halt() API is called after USB endpoint is disabled which results into device crash with NULL pointer dereference. USB endpoint's descriptors are set to NULL as part of USB endpoint disable functionality. Hence fix this issue by adding NULL pointer check against endpoint's descriptor. CRs-Fixed: 829034 Change-Id: I2e1f67571ed202fab21655bd8f13fc54706419a7 Signed-off-by: Mayank Rana <mrana@codeaurora.org>
-rw-r--r--drivers/usb/dwc3/gadget.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index 7b3dd4f06f3e..0dceef917c8e 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -1432,6 +1432,11 @@ static int dwc3_gadget_ep_set_halt(struct usb_ep *ep, int value)
int ret;
+ if (!ep->desc) {
+ dev_err(dwc->dev, "(%s)'s desc is NULL.\n", dep->name);
+ return -EINVAL;
+ }
+
spin_lock_irqsave(&dwc->lock, flags);
dbg_event(dep->number, "HALT", value);
ret = __dwc3_gadget_ep_set_halt(dep, value, false);