Subject: Re: [PATCH 6/6] net: phy: Stop 'phy-state-machine' and 'phy_change' work on remove

From: Neil Armstrong <[email-masked]>
Date: Wed, 28 Oct 2015 14:54:35 +0100

>     > void phy_disconnect(struct phy_device *phydev)
>     > {
>     >         if (phydev->irq > 0)
>     >                 phy_stop_interrupts(phydev);
>     >
>     >         phy_stop_machine(phydev);
>     >
>     >         phydev->adjust_link = NULL;
>     >
>     >         phy_detach(phydev);
>     > }
> 
>     And this does not yet get called. It probably needs to be in
>     dsa_switch_destroy() just before unregister_netdev() of the slave
>     devices.
> 
>     However, the ordering in dsa_switch_destroy() looks wrong. The fixed
>     phys are destroyed before the slave devices. They should probably be
>     destroyed after the slave devices, or at least after the
>     phy_disconnect() is called.
> 
>                      Andrew
> 

Andrew, Florian,

Thanks for the review, a call to phy_disconnect was missing in dsa_switch_destroy.

I will post a new patchset with the correct fix, a switch to delayed_work and
a separate dsa_slave_destroy function for sake of maintenance ease.

Neil