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. Jon, what do you think? -- Florian