On 27.08.2019 04:47, Jian Shen wrote: > Some ethernet drivers may call phy_start() and phy_stop() from > ndo_open and ndo_close() respectively. > > When network cable is unconnected, and operate like below: > step 1: ifconfig ethX up -> ndo_open -> phy_start ->start > autoneg, and phy is no link. > step 2: ifconfig ethX down -> ndo_close -> phy_stop -> just stop > phy state machine. > step 3: plugin the network cable, and autoneg complete, then > LED for link status will be on. > step 4: ethtool ethX --> see the result of "Link detected" is no. > Step 3 and 4 seem to be unrelated to the actual issue. With which MAC + PHY driver did you observe this?
> This patch forces phy suspend even phydev->link is off. > > Signed-off-by: Jian Shen <shenjia...@huawei.com> > --- > drivers/net/phy/phy.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c > index f3adea9..0acd5b4 100644 > --- a/drivers/net/phy/phy.c > +++ b/drivers/net/phy/phy.c > @@ -911,8 +911,8 @@ void phy_state_machine(struct work_struct *work) > if (phydev->link) { > phydev->link = 0; > phy_link_down(phydev, true); > - do_suspend = true; > } > + do_suspend = true; > break; > } > > Heiner