Subject: Re: [RFC PATCH 12/16] dsa: Make mdio bus optional

From: Andrew Lunn <[email-masked]>
Date: Fri, 27 May 2016 17:18:51 +0200

On Fri, May 27, 2016 at 10:55:45AM -0400, Vivien Didelot wrote:
> Hi Andrew,
> 
> Andrew Lunn <[email-masked]> 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