On Sun, Aug 15, 2021 at 01:41:49PM -0700, Colin Foster wrote: > I also came across some curious code in Seville where it is callocing a > struct phy_device * array instead of struct lynx_pcs *. I'm not sure if > that's technically a bug or if the thought is "a pointer array is a > pointer array." I won't comment on that, but a few things I spotted in the patch: > diff --git a/drivers/net/dsa/ocelot/felix_vsc9959.c b/drivers/net/dsa/ocelot/felix_vsc9959.c > index a84129d18007..d0b3f6be360f 100644 > --- a/drivers/net/dsa/ocelot/felix_vsc9959.c > +++ b/drivers/net/dsa/ocelot/felix_vsc9959.c > @@ -1046,7 +1046,7 @@ static int vsc9959_mdio_bus_alloc(struct ocelot *ocelot) > int rc; > > felix->pcs = devm_kcalloc(dev, felix->info->num_ports, > - sizeof(struct lynx_pcs *), > + sizeof(struct phylink_pcs *), > GFP_KERNEL); > if (!felix->pcs) { > dev_err(dev, "failed to allocate array for PCS PHYs\n"); > @@ -1095,8 +1095,8 @@ static int vsc9959_mdio_bus_alloc(struct ocelot *ocelot) > > for (port = 0; port < felix->info->num_ports; port++) { > struct ocelot_port *ocelot_port = ocelot->ports[port]; > + struct phylink_pcs *phylink; > struct mdio_device *pcs; > - struct lynx_pcs *lynx; Normally, "phylink" is used to refer to the main phylink data structure, so I'm not too thrilled to see it getting re-used for the PCS. However, as you have a variable called "pcs" already, I suppose you don't have much choice. That said, it would be nice to have consistent naming through at least a single file, and you do have "pcs" below to refer to this same thing. Maybe using plpcs or ppcs would suffice? Or maybe use the "long name" of phylink_pcs ? > > if (dsa_is_unused_port(felix->ds, port)) > continue; > @@ -1108,13 +1108,13 @@ static int vsc9959_mdio_bus_alloc(struct ocelot *ocelot) > if (IS_ERR(pcs)) > continue; > > - lynx = lynx_pcs_create(pcs); > + phylink = lynx_pcs_create(pcs); > if (!lynx) { I think you want to change this test. > mdio_device_free(pcs); > continue; > } > > - felix->pcs[port] = lynx; > + felix->pcs[port] = phylink; > > dev_info(dev, "Found PCS at internal MDIO address %d\n", port); > } > @@ -1128,7 +1128,7 @@ static void vsc9959_mdio_bus_free(struct ocelot *ocelot) > int port; > > for (port = 0; port < ocelot->num_phys_ports; port++) { > - struct lynx_pcs *pcs = felix->pcs[port]; > + struct phylink_pcs *pcs = felix->pcs[port]; > > if (!pcs) > continue; > diff --git a/drivers/net/dsa/ocelot/seville_vsc9953.c b/drivers/net/dsa/ocelot/seville_vsc9953.c > index 540cf5bc9c54..8200cc5dd24d 100644 > --- a/drivers/net/dsa/ocelot/seville_vsc9953.c > +++ b/drivers/net/dsa/ocelot/seville_vsc9953.c > @@ -1007,7 +1007,7 @@ static int vsc9953_mdio_bus_alloc(struct ocelot *ocelot) > int rc; > > felix->pcs = devm_kcalloc(dev, felix->info->num_ports, > - sizeof(struct phy_device *), > + sizeof(struct phylink_pcs *), > GFP_KERNEL); > if (!felix->pcs) { > dev_err(dev, "failed to allocate array for PCS PHYs\n"); > @@ -1029,8 +1029,8 @@ static int vsc9953_mdio_bus_alloc(struct ocelot *ocelot) > for (port = 0; port < felix->info->num_ports; port++) { > struct ocelot_port *ocelot_port = ocelot->ports[port]; > int addr = port + 4; > + struct phylink_pcs *phylink; > struct mdio_device *pcs; > - struct lynx_pcs *lynx; > > if (dsa_is_unused_port(felix->ds, port)) > continue; > @@ -1042,13 +1042,13 @@ static int vsc9953_mdio_bus_alloc(struct ocelot *ocelot) > if (IS_ERR(pcs)) > continue; > > - lynx = lynx_pcs_create(pcs); > + phylink = lynx_pcs_create(pcs); > if (!lynx) { Same here. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!