]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
net: phy: simplify handling of PHY_RESUMING in state machine
authorHeiner Kallweit <hkallweit1@gmail.com>
Thu, 11 Oct 2018 20:37:38 +0000 (22:37 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 16 Oct 2018 05:06:38 +0000 (22:06 -0700)
Simplify code for handling state PHY_RESUMING, no functional change
intended.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phy.c

index 696955d38dd698850154bbb2f015c36e581834df..d03bdbbd1eafef8badf21203dea82d4a4b378526 100644 (file)
@@ -1059,41 +1059,26 @@ void phy_state_machine(struct work_struct *work)
        case PHY_RESUMING:
                if (AUTONEG_ENABLE == phydev->autoneg) {
                        err = phy_aneg_done(phydev);
-                       if (err < 0)
+                       if (err < 0) {
                                break;
-
-                       /* err > 0 if AN is done.
-                        * Otherwise, it's 0, and we're  still waiting for AN
-                        */
-                       if (err > 0) {
-                               err = phy_read_status(phydev);
-                               if (err)
-                                       break;
-
-                               if (phydev->link) {
-                                       phydev->state = PHY_RUNNING;
-                                       phy_link_up(phydev);
-                               } else  {
-                                       phydev->state = PHY_NOLINK;
-                                       phy_link_down(phydev, false);
-                               }
-                       } else {
+                       } else if (!err) {
                                phydev->state = PHY_AN;
                                phydev->link_timeout = PHY_AN_TIMEOUT;
-                       }
-               } else {
-                       err = phy_read_status(phydev);
-                       if (err)
                                break;
-
-                       if (phydev->link) {
-                               phydev->state = PHY_RUNNING;
-                               phy_link_up(phydev);
-                       } else  {
-                               phydev->state = PHY_NOLINK;
-                               phy_link_down(phydev, false);
                        }
                }
+
+               err = phy_read_status(phydev);
+               if (err)
+                       break;
+
+               if (phydev->link) {
+                       phydev->state = PHY_RUNNING;
+                       phy_link_up(phydev);
+               } else  {
+                       phydev->state = PHY_NOLINK;
+                       phy_link_down(phydev, false);
+               }
                break;
        }