On Mon, Jun 07, 2021 at 11:50:05PM +0300, Andy Shevchenko wrote: > device_get_next_child_node() bumps a reference counting of a returned variable. > We have to balance it whenever we return to the caller. > > Fixes: 6701adfa9693 ("usb: typec: driver for Intel PMC mux control") > Cc: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > Signed-off-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> Reviewed-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx> > --- > v2: moved put call into the conditional inside the loop (Heikki) > drivers/usb/typec/mux/intel_pmc_mux.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/typec/mux/intel_pmc_mux.c b/drivers/usb/typec/mux/intel_pmc_mux.c > index dc8689db0100..221aa1c0e77a 100644 > --- a/drivers/usb/typec/mux/intel_pmc_mux.c > +++ b/drivers/usb/typec/mux/intel_pmc_mux.c > @@ -654,8 +654,10 @@ static int pmc_usb_probe(struct platform_device *pdev) > break; > > ret = pmc_usb_register_port(pmc, i, fwnode); > - if (ret) > + if (ret) { > + fwnode_handle_put(fwnode); > goto err_remove_ports; > + } > } > > platform_set_drvdata(pdev, pmc); > -- > 2.32.0 -- heikki