On Tue, May 30, 2017 at 04:21:51PM +0100, Russell King wrote: > The Marvell driver incorrectly provides phydev->lp_advertising as the > logical and of the link partner's advert and our advert. This is > incorrect - this field is supposed to store the link parter's unmodified > advertisment. > > This allows ethtool to report the correct link partner auto-negotiation > status. > > Signed-off-by: Russell King <[email protected]> > --- > drivers/net/phy/marvell.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c > index e38f84291258..f93a7a46feb7 100644 > --- a/drivers/net/phy/marvell.c > +++ b/drivers/net/phy/marvell.c > @@ -1119,8 +1119,6 @@ static int marvell_read_status_page(struct phy_device > *phydev, int page) > if (adv < 0) > return adv; > > - lpa &= adv; > - > if (status & MII_M1011_PHY_STATUS_FULLDUPLEX) > phydev->duplex = DUPLEX_FULL; > else
Reviewed-by: Andrew Lunn <[email protected]> It appears that lxt.c has a similar issue. It however is not setting phydev->lp_advertising, but it is using the masked values when setting phydev->pause and phydev->asym_pause which i don't think it should do. I can create a patch for that. Andrew
