Thread (14 messages) flat view 14 messages, 2 authors, 2021-06-06

Re: [RFC net-next 0/2] Introduce MDIO probe order C45 over C22

From: Andrew Lunn <andrew@lunn.ch>
Date: 2021-06-02 02:19:52
Also in: lkml

quoted hunk ↗ jump to hunk
Yeah, you're right. Thanks for pointing that out. It should be:
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 1539ea021ac0..73bfde770f2d 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -862,11 +862,22 @@ struct phy_device *get_phy_device(struct mii_bus *bus, int addr, bool is_c45)
        c45_ids.mmds_present = 0;
        memset(c45_ids.device_ids, 0xff, sizeof(c45_ids.device_ids));

-       if (is_c45)
+       if (is_c45) {
                r = get_phy_c45_ids(bus, addr, &c45_ids);
-       else
+       } else {
                r = get_phy_c22_id(bus, addr, &phy_id);

+               if (phy_id == 0) {
+                       r = get_phy_c45_ids(bus, addr, &c45_ids);
+                       if (r == -ENOTSUPP || r == -ENODEV)
+                               return phy_device_create(bus, addr, phy_id,
+                                                        false, &c45_ids);
+                       else
+                               return phy_device_create(bus, addr, phy_id,
+                                                        true, &c45_ids);
Still not correct. Think about when get_phy_c22_id() returns an
error. Walk through all the different code paths and check they do the
right thing. It is actually a lot more complex than what is shown
here. Think about all the different types of PHYs and all the
different types of MDIO bus drivers.

      Andrew
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help