Message ID | 7b36ac43778b41831debd5c30b5b37d268512195.1686039915.git.geert+renesas@glider.be (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: stmmac: Fix build without PCS_LYNX | expand |
On Tue, Jun 6, 2023 at 10:27 AM Geert Uytterhoeven <geert+renesas@glider.be> wrote: > If STMMAC_ETH=y, but PCS_LYNX=n (e.g. shmobile_defconfig): > > arm-linux-gnueabihf-ld: drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.o: in function `stmmac_mdio_unregister': > stmmac_mdio.c:(.text+0xfbc): undefined reference to `lynx_pcs_destroy' > > As pcs_lynx is used only on dwmac_socfpga, fix this by adding a check > for PCS_LYNX to the cleanup path in the generic driver. > > Fixes: 5d1f3fe7d2d54d04 ("net: stmmac: dwmac-sogfpga: use the lynx pcs driver") > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> > --- > drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c > index c784a6731f08e108..53ed59d732210814 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c > @@ -665,7 +665,7 @@ int stmmac_mdio_unregister(struct net_device *ndev) > if (priv->hw->xpcs) > xpcs_destroy(priv->hw->xpcs); > > - if (priv->hw->lynx_pcs) > + if (IS_ENABLED(CONFIG_PCS_LYNX) && priv->hw->lynx_pcs) > lynx_pcs_destroy(priv->hw->lynx_pcs); > > mdiobus_unregister(priv->mii); As pointed out by Arnd, this doesn't work when PCS_LYNX is a loadable module and STMMAC is built-in: https://lore.kernel.org/r/11bd37e9-c62e-46ba-9456-8e3b353df28f@app.fastmail.com Gr{oetje,eeting}s, Geert
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c index c784a6731f08e108..53ed59d732210814 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c @@ -665,7 +665,7 @@ int stmmac_mdio_unregister(struct net_device *ndev) if (priv->hw->xpcs) xpcs_destroy(priv->hw->xpcs); - if (priv->hw->lynx_pcs) + if (IS_ENABLED(CONFIG_PCS_LYNX) && priv->hw->lynx_pcs) lynx_pcs_destroy(priv->hw->lynx_pcs); mdiobus_unregister(priv->mii);
If STMMAC_ETH=y, but PCS_LYNX=n (e.g. shmobile_defconfig): arm-linux-gnueabihf-ld: drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.o: in function `stmmac_mdio_unregister': stmmac_mdio.c:(.text+0xfbc): undefined reference to `lynx_pcs_destroy' As pcs_lynx is used only on dwmac_socfpga, fix this by adding a check for PCS_LYNX to the cleanup path in the generic driver. Fixes: 5d1f3fe7d2d54d04 ("net: stmmac: dwmac-sogfpga: use the lynx pcs driver") Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> --- drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)