Re: [PATCH 5/5] net: ch9200: avoid triggering NWay restart on non-zero PHY ID

From: Andrew Lunn
Date: Mon Apr 14 2025 - 21:35:31 EST


On Sat, Apr 12, 2025 at 07:38:29PM +0100, Qasim Ijaz wrote:
> During ch9200_mdio_read if the phy_id is not 0 -ENODEV is returned.
>
> In certain cases such as in mii_nway_restart returning a negative such
> as -ENODEV triggers the "bmcr & BMCR_ANENABLE" check, we should avoid
> this on error and just end the function.
>
> To address this just return 0.
>
> Signed-off-by: Qasim Ijaz <qasdev00@xxxxxxxxx>
> ---
> drivers/net/usb/ch9200.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/usb/ch9200.c b/drivers/net/usb/ch9200.c
> index 187bbfc991f5..281800bb2ff2 100644
> --- a/drivers/net/usb/ch9200.c
> +++ b/drivers/net/usb/ch9200.c
> @@ -182,7 +182,7 @@ static int ch9200_mdio_read(struct net_device *netdev, int phy_id, int loc)
> __func__, phy_id, loc);
>
> if (phy_id != 0)
> - return -ENODEV;
> + return 0;

An actually MDIO bus would return 0xffff is asked to read from a PHY
which is not on the bus. But i've no idea how the ancient mii code
handles this.

If this code every gets updated to using phylib, many of the changes
you are making will need reverting because phylib actually wants to
see the errors. So i'm somewhat reluctant to make changes like this.

Andrew