linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH net] net: phy: fix the issue that netif always links up after resuming
@ 2018-11-29  8:12 Kunihiko Hayashi
  2018-11-29 22:47 ` Heiner Kallweit
  0 siblings, 1 reply; 6+ messages in thread
From: Kunihiko Hayashi @ 2018-11-29  8:12 UTC (permalink / raw)
  To: Andrew Lunn, Florian Fainelli, Heiner Kallweit, David S. Miller
  Cc: netdev, linux-kernel, Kunihiko Hayashi

Even though the link is down before entering hibernation,
there is an issue that the network interface always links up after resuming
from hibernation.

The phydev->state is PHY_READY before enabling the network interface, so
the link is down. After resuming from hibernation, the phydev->state is
forcibly set to PHY_UP in mdio_bus_phy_restore(), and the link becomes up.

This patch expects to solve the issue by changing phydev->state to PHY_UP
only when the link is up.

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
---
 drivers/net/phy/phy_device.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index ab33d17..d5bba0f 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -309,8 +309,10 @@ static int mdio_bus_phy_restore(struct device *dev)
 		return ret;
 
 	/* The PHY needs to renegotiate. */
-	phydev->link = 0;
-	phydev->state = PHY_UP;
+	if (phydev->link) {
+		phydev->link = 0;
+		phydev->state = PHY_UP;
+	}
 
 	phy_start_machine(phydev);
 
-- 
2.7.4


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-11-30  6:38 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-29  8:12 [RFC PATCH net] net: phy: fix the issue that netif always links up after resuming Kunihiko Hayashi
2018-11-29 22:47 ` Heiner Kallweit
2018-11-30  0:37   ` Florian Fainelli
2018-11-30  4:37     ` Kunihiko Hayashi
2018-11-30  6:20       ` Heiner Kallweit
2018-11-30  6:38         ` Kunihiko Hayashi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).