net: phy: fix autoneg mismatch case in genphy_read_status
authorHeiner Kallweit <hkallweit1@gmail.com>
Tue, 2 Apr 2019 18:43:30 +0000 (20:43 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 4 Apr 2019 04:47:54 +0000 (21:47 -0700)
commit4950c2ba49cc6f2b38dbedcfa0ff67acf761419a
treee1bea0ceb1887369c734f6a48b5bbbc2a916ff81
parent49ffba361d5b3637d3b926d8bfe79dde9710272c
net: phy: fix autoneg mismatch case in genphy_read_status

The original patch didn't consider the case that autoneg process
finishes successfully but both link partners have no mode in common.
In this case there's no link, nevertheless we may be interested in
what the link partner advertised.

Like phydev->link we set phydev->autoneg_complete in
genphy_update_link() and use the stored value in genphy_read_status().
This way we don't have to read register BMSR again.

Fixes: b6163f194c69 ("net: phy: improve genphy_read_status")
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/phy/phy_device.c
include/linux/phy.h