net: phy: Fix overlong PHY timeout
authorAndre Przywara <andre.przywara@arm.com>
Fri, 3 Jan 2020 22:08:47 +0000 (22:08 +0000)
committerJoe Hershberger <joe.hershberger@ni.com>
Mon, 9 Mar 2020 23:11:24 +0000 (18:11 -0500)
Commit 27c3f70f3b50 ("net: phy: Increase link up delay in
genphy_update_link()") increased the per-iteration waiting time from
1ms to 50ms, without adjusting the timeout counter. This lead to the
timeout increasing from the typical 4 seconds to over three minutes.

Adjust the timeout counter evaluation by that factor of 50 to bring the
timeout back to the intended value.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Fixes: net: phy: Increase link up delay in genphy_update_link() ("27c3f70f3b50")
Reviewed-by: Stefan Roese <sr@denx.de>
Tested-by: Matthias Brugger <mbrugger@suse.com>
Tested-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
drivers/net/phy/phy.c

index 359cc49..505d3ab 100644 (file)
@@ -244,7 +244,7 @@ int genphy_update_link(struct phy_device *phydev)
                        /*
                         * Timeout reached ?
                         */
-                       if (i > PHY_ANEG_TIMEOUT) {
+                       if (i > (PHY_ANEG_TIMEOUT / 50)) {
                                printf(" TIMEOUT !\n");
                                phydev->link = 0;
                                return -ETIMEDOUT;