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

Reply via email to