Subject: Re: [PATCH net-next] net: pcs: xpcs: depends on PHYLINK in Kconfig

From: Jakub Kicinski <[email-masked]>
Date: Tue, 21 Jun 2022 12:50:45 -0700

On Tue, 21 Jun 2022 09:55:35 +0200 Paolo Abeni wrote:
> This is another attempt at fixing:
> 
> >> ERROR: modpost: "phylink_mii_c22_pcs_encode_advertisement" [drivers/net/pcs/pcs_xpcs.ko] undefined!
> >> ERROR: modpost: "phylink_mii_c22_pcs_decode_state" [drivers/net/pcs/pcs_xpcs.ko] undefined!  
> 
> We can't select PHYLINK, or that will trigger a circular dependency
> PHYLINK already selects PHYLIB, which in turn selects MDIO_DEVICE:
> replacing the MDIO_DEVICE dependency with PHYLINK will pull all the
> required configs.

We can't use depends with PHYLINK, AFAIU, because PHYLINK is not 
a user-visible knob. Its always "select"ed and does not show up
in {x,n,menu}config.

If there is no string after bool/tristate the option is not visible 
to the user:

config PHYLINK                                                                  
        tristate  
        depends on NETDEVICES                                                   
        select PHYLIB       

> Link: https://lore.kernel.org/netdev/[email-masked]/
> Reported-by: kernel test robot <[email-masked]>
> Fixes: b47aec885bcd ("net: pcs: xpcs: add CL37 1000BASE-X AN support")
> Signed-off-by: Paolo Abeni <[email-masked]>
> ---
>  drivers/net/pcs/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/pcs/Kconfig b/drivers/net/pcs/Kconfig
> index 22ba7b0b476d..70fd6a03e982 100644
> --- a/drivers/net/pcs/Kconfig
> +++ b/drivers/net/pcs/Kconfig
> @@ -7,7 +7,7 @@ menu "PCS device drivers"
>  
>  config PCS_XPCS
>  	tristate "Synopsys DesignWare XPCS controller"
> -	depends on MDIO_DEVICE && MDIO_BUS
> +	depends on PHYLINK && MDIO_BUS
>  	help
>  	  This module provides helper functions for Synopsys DesignWare XPCS
>  	  controllers.