Commit 0ae93b2c authored by Guenter Roeck's avatar Guenter Roeck Committed by David S. Miller

gianfar: Reduce logging noise seen due to phy polling if link is down

Commit 6ce29b0e ("gianfar: Avoid unnecessary reg accesses in adjust_link()")
eliminates unnecessary calls to adjust_link for phy devices which don't support
interrupts and need polling. As part of that work, the 'new_state' local flag,
which was used to reduce logging noise on the console, was eliminated.

Unfortunately, that means that a 'Link is Down' log message will now be
issued continuously if a link is configured as UP, the link state is down,
and the associated phy requires polling. This occurs because priv->oldduplex
is -1 in this case, which always differs from phydev->duplex. In addition,
phydev->speed may also differ from priv->oldspeed.  gfar_update_link_state()
is therefore called each time a phy is polled, even if the link state did not
change.

Cc: Claudiu Manoil <claudiu.manoil@freescale.com>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
Reviewed-by: default avatarClaudiu Manoil <claudiu.manoil@freescale.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent c77c761f
...@@ -3162,8 +3162,8 @@ static void adjust_link(struct net_device *dev) ...@@ -3162,8 +3162,8 @@ static void adjust_link(struct net_device *dev)
struct phy_device *phydev = priv->phydev; struct phy_device *phydev = priv->phydev;
if (unlikely(phydev->link != priv->oldlink || if (unlikely(phydev->link != priv->oldlink ||
phydev->duplex != priv->oldduplex || (phydev->link && (phydev->duplex != priv->oldduplex ||
phydev->speed != priv->oldspeed)) phydev->speed != priv->oldspeed))))
gfar_update_link_state(priv); gfar_update_link_state(priv);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment