diff options
author | Heiner Kallweit <hkallweit1@gmail.com> | 2019-01-17 14:08:39 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-01-18 17:12:25 -0500 |
commit | cbfd12b3e8c3542e8142aa041714ed614d3f67b0 (patch) | |
tree | 36ae59a5707738b23beadf3d4f19b351ade7ef33 /drivers/net/phy/phy.c | |
parent | 472115d9834cd3a194a14269f28d8b146ad26c11 (diff) |
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.c | 1 |
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) | |||
858 | mutex_unlock(&phydev->lock); | 858 | mutex_unlock(&phydev->lock); |
859 | 859 | ||
860 | phy_state_machine(&phydev->state_queue.work); | 860 | phy_state_machine(&phydev->state_queue.work); |
861 | phy_stop_machine(phydev); | ||
861 | 862 | ||
862 | /* Cannot call flush_scheduled_work() here as desired because | 863 | /* Cannot call flush_scheduled_work() here as desired because |
863 | * of rtnl_lock(), but PHY_HALTED shall guarantee irq handler | 864 | * of rtnl_lock(), but PHY_HALTED shall guarantee irq handler |