On Tue, Jul 5, 2022 at 6:19 AM Michael Walle <michael@xxxxxxxx> wrote: > > devm_gpiod_get_optional() might still return an error code, esp. > EPROBE_DEFER. Return any errors. > > Signed-off-by: Michael Walle <michael@xxxxxxxx> > --- > drivers/usb/gadget/udc/atmel_usba_udc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/usb/gadget/udc/atmel_usba_udc.c b/drivers/usb/gadget/udc/atmel_usba_udc.c > index ae2bfbac603e..48355e0cee76 100644 > --- a/drivers/usb/gadget/udc/atmel_usba_udc.c > +++ b/drivers/usb/gadget/udc/atmel_usba_udc.c > @@ -2165,6 +2165,8 @@ static struct usba_ep * atmel_udc_of_init(struct platform_device *pdev, > > udc->vbus_pin = devm_gpiod_get_optional(&pdev->dev, "atmel,vbus", > GPIOD_IN); > + if (IS_ERR(udc->vbus_pin)) > + return ERR_CAST(udc->vbus_pin); I'm confused. Is it really an optional resource if you treat a failure to get it as a reason to fail a probe? -Saravana > > if (fifo_mode == 0) { > udc->num_ep = udc_config->num_ep; > -- > 2.30.2 >