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.delau...@st.com> >>> Signed-off-by: Tomeu Vizoso <tomeu.viz...@collabora.com> >> >> Thanks for catching that oops in your tests. >> Reviewed-by: Heiko Stuebner <he...@sntech.de> > > 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.delau...@st.com> Thanks for the fix, AmelieN�����r��y����b�X��ǧv�^�){.n�+����{������^n�r���z���h�����&���G���h�(�階�ݢj"���m������z�ޖ���f���h���~�m�