Re: [PATCH net v3] net: dsa: ocelot: add dependency for NET_DSA_MSCC_FELIX

From: Vladimir Oltean
Date: Mon Nov 25 2019 - 14:42:37 EST


On Mon, 25 Nov 2019 at 14:47, Mao Wenan <maowenan@xxxxxxxxxx> wrote:
>
> If CONFIG_NET_DSA_MSCC_FELIX=y, and CONFIG_NET_VENDOR_MICROSEMI=n,
> below errors can be found:
> drivers/net/dsa/ocelot/felix.o: In function `felix_vlan_del':
> felix.c:(.text+0x26e): undefined reference to `ocelot_vlan_del'
> drivers/net/dsa/ocelot/felix.o: In function `felix_vlan_add':
> felix.c:(.text+0x352): undefined reference to `ocelot_vlan_add'
>
> and warning as below:
> WARNING: unmet direct dependencies detected for MSCC_OCELOT_SWITCH
> Depends on [n]: NETDEVICES [=y] && ETHERNET [=y] &&
> NET_VENDOR_MICROSEMI [=n] && NET_SWITCHDEV [=y] && HAS_IOMEM [=y]
> Selected by [y]:
> NET_DSA_MSCC_FELIX [=y] && NETDEVICES [=y] && HAVE_NET_DSA [=y]
> && NET_DSA [=y] && PCI [=y]
>
> This patch is to select NET_VENDOR_MICROSEMI and add dependency
> NET_SWITCHDEV, HAS_IOMEM for NET_DSA_MSCC_FELIX.
>
> Fixes: 56051948773e ("net: dsa: ocelot: add driver for Felix switch family")
> Signed-off-by: Mao Wenan <maowenan@xxxxxxxxxx>
> ---

NET_DSA already selects NET_SWITCHDEV
MSCC_OCELOT_SWITCH already selects HAS_IOMEM
As for NET_VENDOR_MICROSEMI, does anyone care what are the results
after Kconfig prints this?

WARNING: unmet direct dependencies detected for MSCC_OCELOT_SWITCH
Depends on [n]: NETDEVICES [=y] && ETHERNET [=y] &&
NET_VENDOR_MICROSEMI [=n] && NET_SWITCHDEV [=y] && HAS_IOMEM [=y]
Selected by [y]:
- NET_DSA_MSCC_FELIX [=y] && NETDEVICES [=y] && HAVE_NET_DSA [=y] &&
NET_DSA [=y] && PCI [=y]

WARNING: unmet direct dependencies detected for MSCC_OCELOT_SWITCH
Depends on [n]: NETDEVICES [=y] && ETHERNET [=y] &&
NET_VENDOR_MICROSEMI [=n] && NET_SWITCHDEV [=y] && HAS_IOMEM [=y]
Selected by [y]:
- NET_DSA_MSCC_FELIX [=y] && NETDEVICES [=y] && HAVE_NET_DSA [=y] &&
NET_DSA [=y] && PCI [=y]

WARNING: unmet direct dependencies detected for MSCC_OCELOT_SWITCH
Depends on [n]: NETDEVICES [=y] && ETHERNET [=y] &&
NET_VENDOR_MICROSEMI [=n] && NET_SWITCHDEV [=y] && HAS_IOMEM [=y]
Selected by [y]:
- NET_DSA_MSCC_FELIX [=y] && NETDEVICES [=y] && HAVE_NET_DSA [=y] &&
NET_DSA [=y] && PCI [=y]

If yes. why?

It's like executing code after return.

> v3: add depends on NET_SWITCHDEV and HAS_IOMEM.
> v2: modify 'depends on' to 'select'.
> drivers/net/dsa/ocelot/Kconfig | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/net/dsa/ocelot/Kconfig b/drivers/net/dsa/ocelot/Kconfig
> index 0031ca814346..1ec2dfbd76ce 100644
> --- a/drivers/net/dsa/ocelot/Kconfig
> +++ b/drivers/net/dsa/ocelot/Kconfig
> @@ -2,6 +2,9 @@
> config NET_DSA_MSCC_FELIX
> tristate "Ocelot / Felix Ethernet switch support"
> depends on NET_DSA && PCI
> + depends on NET_SWITCHDEV
> + depends on HAS_IOMEM
> + select NET_VENDOR_MICROSEMI
> select MSCC_OCELOT_SWITCH
> select NET_DSA_TAG_OCELOT
> help
> --
> 2.20.1
>

Regards,
-Vladimir