Message ID | 20250412183829.41342-6-qasdev00@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | net: ch9200: fix various bugs and improve qinheng ch9200 driver | expand |
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@gmail.com> > --- > 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
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; ret = control_read(dev, REQUEST_READ, 0, loc * 2, buff, 0x02, CONTROL_TIMEOUT_MS);
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@gmail.com> --- drivers/net/usb/ch9200.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)