On Thu, May 13, 2021 at 09:24:55AM +0200, Christophe JAILLET wrote: > 'bus->mii_bus' has been allocated with 'devm_mdiobus_alloc_size()' in the > probe function. So it must not be freed explicitly or there will be a > double free. > > Remove the incorrect 'mdiobus_free' in the error handling path of the > probe function and in remove function. > > Suggested-By: Andrew Lunn <andrew@xxxxxxx> > Fixes: 35d2aeac9810 ("phy: mdio-octeon: Use devm_mdiobus_alloc_size()") > Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> Reviewed-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxx> > --- > The 'smi_en.u64 = 0; oct_mdio_writeq()' looks odd to me. Usually the normal > path and the error handling path don't write the same value. Here, both > write 0. > Having '1' somewhere would 'look' more usual. :) > More over I think that 'smi_en.s.en = 1;' in the probe is useless. It looks fine to me. smi_en.u64 = 0; smi_en.s.en = 1; oct_mdio_writeq(smi_en.u64, bus->register_base + SMI_EN); smi_en is a union of a u64 and a structure containing a bitfield. s.en corresponds on LE systems with the u64 bit 0. So the above has the effect of writing a u64 value of '1' to the SMI_EN register, whereas: smi_en.u64 = 0; oct_mdio_writeq(smi_en.u64, bus->register_base + SMI_EN); has the effect of writing a u64 value of '0' to the SMI_EN register. This code is fine. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!