From: Felipe Balbi Date: Mon, 22 Jul 2013 09:31:31 +0000 (+0300) Subject: usb: dwc3: ep0: only change to ADDRESS if set_config() succeeds X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=7a42d83536a5ea7ea7b4ad279c34c4c4ce509b5a;p=linux-beck.git usb: dwc3: ep0: only change to ADDRESS if set_config() succeeds In case we're switching back to USB_STATE_ADDRESS from USB_STATE_CONFIGURED (if host sends a set configuration command for configuration zero), we should only switch if the request is successfully processed by the gadget driver. Reported-by: Alan Stern Signed-off-by: Felipe Balbi --- diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c index e9d099cee636..007651c21638 100644 --- a/drivers/usb/dwc3/ep0.c +++ b/drivers/usb/dwc3/ep0.c @@ -551,7 +551,7 @@ static int dwc3_ep0_set_config(struct dwc3 *dwc, struct usb_ctrlrequest *ctrl) case USB_STATE_CONFIGURED: ret = dwc3_ep0_delegate_req(dwc, ctrl); - if (!cfg) + if (!cfg && !ret) usb_gadget_set_state(&dwc->gadget, USB_STATE_ADDRESS); break;