Messages in this thread | | | Subject | Re: [PATCH v3 2/2] usb: gadget: udc: Handle gadget_connect failure during bind operation | From | Sergei Shtylyov <> | Date | Wed, 10 May 2023 12:31:44 +0300 |
| |
Hello!
On 5/10/23 10:52 AM, Krishna Kurapati wrote:
> In the event, gadget_connect call (which invokes pullup) fails, > propagate the error to udc bind operation which inturn sends the > error to configfs. The userspace can then retry enumeartion if > it chooses to. > > Signed-off-by: Krishna Kurapati <quic_kriskura@quicinc.com> > Acked-by: Alan Stern <stern@rowland.harvard.edu> > --- > changes in v3: Rebase on top of usb-next > > drivers/usb/gadget/udc/core.c | 21 +++++++++++++++++---- > 1 file changed, 17 insertions(+), 4 deletions(-) > > diff --git a/drivers/usb/gadget/udc/core.c b/drivers/usb/gadget/udc/core.c > index 4641153e9706..69041cca5d24 100644 > --- a/drivers/usb/gadget/udc/core.c > +++ b/drivers/usb/gadget/udc/core.c > @@ -1122,12 +1122,16 @@ EXPORT_SYMBOL_GPL(usb_gadget_set_state); > /* ------------------------------------------------------------------------- */ > > /* Acquire connect_lock before calling this function. */ > -static void usb_udc_connect_control_locked(struct usb_udc *udc) __must_hold(&udc->connect_lock) > +static int usb_udc_connect_control_locked(struct usb_udc *udc) __must_hold(&udc->connect_lock) > { > + int ret; > + > if (udc->vbus && udc->started) > - usb_gadget_connect_locked(udc->gadget); > + ret = usb_gadget_connect_locked(udc->gadget);
Why not just:
return usb_gadget_connect_locked(udc->gadget)
> else > - usb_gadget_disconnect_locked(udc->gadget); > + ret = usb_gadget_disconnect_locked(udc->gadget);
Likewise here?
> + > + return ret; > } > > /** [...]
MBR, Sergey
| |