Hi Heiko, Hi Tomeu, On 03/22/2018 12:41 PM, Heiko Stübner wrote: > Hi Tomeu, > > Am Donnerstag, 22. März 2018, 12:39:13 CET schrieb Heiko Stübner: >> Am Donnerstag, 22. März 2018, 10:39:43 CET schrieb Tomeu Vizoso: >>> devm_regulator_get_optional returns -ENODEV if the regulator isn't >>> there, so if that's the case we have to make sure not to leave -ENODEV >>> in the regulator pointer. >>> >>> Also, make sure we return 0 in that case, but correctly propagate any >>> other errors. Also propagate the error from _dwc2_hcd_start. >>> >>> Fixes: 531ef5ebea96 ("usb: dwc2: add support for host mode external vbus >>> supply") Cc: Amelie Delaunay <amelie.delaunay@xxxxxx> >>> Signed-off-by: Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx> >> >> Thanks for catching that oops in your tests. >> Reviewed-by: Heiko Stuebner <heiko@xxxxxxxxx> > > I take that back :-) > see below > >>> --- >>> >>> drivers/usb/dwc2/hcd.c | 13 ++++++++----- >>> 1 file changed, 8 insertions(+), 5 deletions(-) >>> >>> diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c >>> index dcfda5eb4cac..4ae211f65e85 100644 >>> --- a/drivers/usb/dwc2/hcd.c >>> +++ b/drivers/usb/dwc2/hcd.c >>> @@ -359,8 +359,13 @@ static void dwc2_gusbcfg_init(struct dwc2_hsotg >>> *hsotg) static int dwc2_vbus_supply_init(struct dwc2_hsotg *hsotg) >>> >>> { >>> >>> hsotg->vbus_supply = devm_regulator_get_optional(hsotg->dev, "vbus"); >>> >>> - if (IS_ERR(hsotg->vbus_supply)) >>> - return 0; >>> + if (IS_ERR(hsotg->vbus_supply)) { >>> + hsotg->vbus_supply = NULL; >>> + if (PTR_ERR(hsotg->vbus_supply) == -ENODEV) > > hsotg->vbus_supply is already NULL here > Tomeu is right, here, hsotg->vbus_supply = ERR_PTR(-ENODEV). /** * regulator_get_optional - obtain optional access to a regulator. * ... * Returns a struct regulator corresponding to the regulator producer, * or IS_ERR() condition containing errno. * ... */ You can add my Reviewed-by: Amelie Delaunay <amelie.delaunay@xxxxxx> Thanks for the fix, Amelie��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥