aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/phy/phy.c
diff options
context:
space:
mode:
authorHeiner Kallweit <hkallweit1@gmail.com>2019-01-17 20:08:39 +0100
committerDavid S. Miller <davem@davemloft.net>2019-01-18 14:12:25 -0800
commitcbfd12b3e8c3542e8142aa041714ed614d3f67b0 (patch)
tree36ae59a5707738b23beadf3d4f19b351ade7ef33 /drivers/net/phy/phy.c
parentnet: phy: stop PHY if needed when entering phy_disconnect (diff)
downloadlinux-dev-cbfd12b3e8c3542e8142aa041714ed614d3f67b0.tar.xz
linux-dev-cbfd12b3e8c3542e8142aa041714ed614d3f67b0.zip
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: Heiner Kallweit <hkallweit1@gmail.com> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/phy/phy.c')
-rw-r--r--drivers/net/phy/phy.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index b0632e859564..37cf39fdcc91 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -858,6 +858,7 @@ void phy_stop(struct phy_device *phydev)
mutex_unlock(&phydev->lock);
phy_state_machine(&phydev->state_queue.work);
+ phy_stop_machine(phydev);
/* Cannot call flush_scheduled_work() here as desired because
* of rtnl_lock(), but PHY_HALTED shall guarantee irq handler