@@ -1181,6 +1181,9 @@ static int lan78xx_link_reset(struct lan
if (unlikely(ret < 0))
return -EIO;
-
+
+ /* Acknowledge any pending PHY interrupt, lest it be the last */
+ phy_read(phydev, LAN88XX_INT_STS);
+
+ mutex_lock(&phydev->lock);
phy_read_status(phydev);
-
- if (!phydev->link && dev->link_on) {
+ link = phydev->link;