On Fri, May 27, 2016 at 10:55:45AM -0400, Vivien Didelot wrote: > Hi Andrew, > > Andrew Lunn <and...@lunn.ch> writes: > > > - mdiobus_unregister(ds->slave_mii_bus); > > + if (ds->slave_mii_bus && ds->drv->phy_read) > > + mdiobus_unregister(ds->slave_mii_bus); > > So if a driver registered the slave MII bus itself, it may have > unregistered it itself as well, so checking ds->slave_mii_bus is OK > (assuming the driver correctly zero'ed it). > > But is it necessary to check ds->drv->phy_read?
It makes the code symmetrical to the register code, which makes the same check. My experience is that keeping the code symmetrical results in less surprises late on. One such surprise could be a driver that does not zero ds->slave_mii_bus. In fact, mv88e6xxx does not zero it. So we would get a double unregister happening. We also don't want the core unregistering it, since we have other cleanup work to do, we have an of_node_put() to call. Andrew