Commit cbfd12b3 authored by Heiner Kallweit's avatar Heiner Kallweit Committed by David S. Miller

net: phy: ensure phylib state machine is stopped after calling phy_stop

The call to the phylib state machine in phy_stop() just ensures that
the state machine isn't re-triggered, but a state machine call may
be scheduled already. So lets's call phy_stop_machine().
This also allows to get rid of the call to phy_stop_machine() in
phy_disconnect().
Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 472115d9
...@@ -858,6 +858,7 @@ void phy_stop(struct phy_device *phydev) ...@@ -858,6 +858,7 @@ void phy_stop(struct phy_device *phydev)
mutex_unlock(&phydev->lock); mutex_unlock(&phydev->lock);
phy_state_machine(&phydev->state_queue.work); phy_state_machine(&phydev->state_queue.work);
phy_stop_machine(phydev);
/* Cannot call flush_scheduled_work() here as desired because /* Cannot call flush_scheduled_work() here as desired because
* of rtnl_lock(), but PHY_HALTED shall guarantee irq handler * of rtnl_lock(), but PHY_HALTED shall guarantee irq handler
......
...@@ -1005,8 +1005,6 @@ void phy_disconnect(struct phy_device *phydev) ...@@ -1005,8 +1005,6 @@ void phy_disconnect(struct phy_device *phydev)
if (phydev->irq > 0) if (phydev->irq > 0)
phy_stop_interrupts(phydev); phy_stop_interrupts(phydev);
phy_stop_machine(phydev);
phydev->adjust_link = NULL; phydev->adjust_link = NULL;
phy_detach(phydev); phy_detach(phydev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment