net: phy: Ensure state transitions are processed from phy_stop()
authorFlorian Fainelli <f.fainelli@gmail.com>
Thu, 16 Mar 2023 20:33:24 +0000 (13:33 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 19 Mar 2023 10:46:13 +0000 (10:46 +0000)
commit4203d84032e28f893594a453bd8bc9c3b15c7334
tree533ebc0c93fa0dc22ea7219c73038efd1416e35e
parent739cb49988afc1da85edce984212e5bbadbbf6ce
net: phy: Ensure state transitions are processed from phy_stop()

In the phy_disconnect() -> phy_stop() path, we will be forcibly setting
the PHY state machine to PHY_HALTED. This invalidates the old_state !=
phydev->state condition in phy_state_machine() such that we will neither
display the state change for debugging, nor will we invoke the
link_change_notify() callback.

Factor the code by introducing phy_process_state_change(), and ensure
that we process the state change from phy_stop() as well.

Fixes: 5c5f626bcace ("net: phy: improve handling link_change_notify callback")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phy.c