Skip to content

Commit

Permalink
usb: dwc3: gadget: warn about endpoint already enabled before changin…
Browse files Browse the repository at this point in the history
…g ep name

In case some gadget driver tries to enable an endpoint
which is already enabled, we print a nice WARN so we
can track broken gadget drivers. The only problem is that
we're printing the WARN when we already changed endpoint's
name, which would result in endpoints named as:

ep1in-bulk-bulk-bulk-bulk-bulk-bulk-bulk

To prevent that, we will continue to print the WARN,
but do so before changing endpoint's name and return
early.

Signed-off-by: Felipe Balbi <balbi@ti.com>
  • Loading branch information
Felipe Balbi committed Aug 15, 2012
1 parent b7e38aa commit c6f83f3
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions drivers/usb/dwc3/gadget.c
Original file line number Diff line number Diff line change
Expand Up @@ -642,6 +642,12 @@ static int dwc3_gadget_ep_enable(struct usb_ep *ep,
dep = to_dwc3_ep(ep);
dwc = dep->dwc;

if (dep->flags & DWC3_EP_ENABLED) {
dev_WARN_ONCE(dwc->dev, true, "%s is already enabled\n",
dep->name);
return 0;
}

switch (usb_endpoint_type(desc)) {
case USB_ENDPOINT_XFER_CONTROL:
strlcat(dep->name, "-control", sizeof(dep->name));
Expand All @@ -659,12 +665,6 @@ static int dwc3_gadget_ep_enable(struct usb_ep *ep,
dev_err(dwc->dev, "invalid endpoint transfer type\n");
}

if (dep->flags & DWC3_EP_ENABLED) {
dev_WARN_ONCE(dwc->dev, true, "%s is already enabled\n",
dep->name);
return 0;
}

dev_vdbg(dwc->dev, "Enabling %s\n", dep->name);

spin_lock_irqsave(&dwc->lock, flags);
Expand Down

0 comments on commit c6f83f3

Please sign in to comment.