On Fri, 12 May 2017, Florian Fainelli wrote:
> On 05/12/2017 09:22 AM, David Miller wrote: > > From: Julia Lawall <julia.law...@lip6.fr> > > Date: Fri, 12 May 2017 22:54:23 +0800 (SGT) > > > >> Device node iterators put the previous value of the index variable, so an > >> explicit put causes a double put. > > ... > >> @@ -169,7 +169,6 @@ int mdio_mux_init(struct device *dev, > >> if (r) { > >> mdiobus_free(cb->mii_bus); > >> devm_kfree(dev, cb); > >> - of_node_put(child_bus_node); > >> } else { > > > > I think we're instead simply missing a break; statement here. > > It's kind of questionable, if we have an error initializing one of our > child MDIO bus controller (child from the perspective of the MDIO mux, > boy this is getting complicated...), should we keep on going, or should > we abort entirely and rollback what we have successfully registered? > > I don't think Julia's patch makes thing worse, in that if we had to > rollback, we would not be doing this correctly now anyway. Just to be clear, if you want the break instead, then you need to keep the put. julia > > Jon, what do you think? > -- > Florian >