usb: dwc3: gadget: fix for possible endpoint disable race
authorFelipe Balbi <felipe.balbi@linux.intel.com>
Wed, 18 May 2016 09:37:21 +0000 (12:37 +0300)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Mon, 20 Jun 2016 09:32:37 +0000 (12:32 +0300)
commit4cb4221764ef473cd36e1953f1fea11865786d65
tree133a36b3808857ad4d6cf0feff76c3ee245f6f4a
parent9cad39fe4e4a4fe95d8ea5a7b0692b0a6e89e38b
usb: dwc3: gadget: fix for possible endpoint disable race

when we call dwc3_gadget_giveback(), we end up
releasing our controller's lock. Another thread
could get scheduled and disable the endpoint,
subsequently setting dep->endpoint.desc to NULL.

In that case, we would end up dereferencing a NULL
pointer which would result in a Kernel Oops. Let's
avoid the problem by simply returning early if we
have a NULL descriptor.

Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/dwc3/gadget.c