diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 1f0512e39c6516d1d8579ce5836b294fb6a658d7..1089a93d12f6958f6d0dd8a4235f82cafdb6443c 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -1136,6 +1136,9 @@ void phy_state_machine(struct work_struct *work)
 	else if (do_suspend)
 		phy_suspend(phydev);
 
+	if (err == -ENODEV)
+		return;
+
 	if (err < 0)
 		phy_error(phydev);