On Sun, Jul 07, 2019 at 06:32:12PM -0400, kwangdo.yi wrote: > When mdio driver polling the phy state in the phy_state_machine, > sometimes it results in -ETIMEDOUT and link is down. But the phy > is still alive and just didn't meet the polling deadline. > Closing the phy link in this case seems too radical. Failing to > meet the deadline happens very rarely. When stress test runs for > tens of hours with multiple target boards (Xilinx Zynq7000 with > marvell 88E1512 PHY, Xilinx custom emac IP), it happens. This > patch gives another chance to the phy_state_machine when polling > timeout happens. Only two consecutive failing the deadline is > treated as the real phy halt and close the connection.
Hi Kwangdo I agree with Florian here. This does not seem like a PHY problem. It is an MDIO bus problem. ETIMEDOUT is only returned from xemaclite_mdio_wait(). What value are using for HZ? If you have 1000, jiffies + 2 could well be too short. Andrew