Re: [PATCH net-next v1 1/1] net: selftest: fix build issue if INET is disabled

From: Randy Dunlap
Date: Wed Apr 28 2021 - 11:31:51 EST


On 4/28/21 6:09 AM, Oleksij Rempel wrote:
> In case ethernet driver is enabled and INET is disabled, selftest will
> fail to build.
>
> Reported-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> Fixes: 3e1e58d64c3d ("net: add generic selftest support")
> Signed-off-by: Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx>

Acked-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> # build-tested

Thanks.

> ---
> drivers/net/ethernet/atheros/Kconfig | 2 +-
> drivers/net/ethernet/freescale/Kconfig | 2 +-
> include/net/selftests.h | 19 +++++++++++++++++++
> net/Kconfig | 2 +-
> net/core/Makefile | 2 +-
> net/dsa/Kconfig | 2 +-
> 6 files changed, 24 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/ethernet/atheros/Kconfig b/drivers/net/ethernet/atheros/Kconfig
> index 6842b74b0696..482c58c4c584 100644
> --- a/drivers/net/ethernet/atheros/Kconfig
> +++ b/drivers/net/ethernet/atheros/Kconfig
> @@ -20,8 +20,8 @@ if NET_VENDOR_ATHEROS
> config AG71XX
> tristate "Atheros AR7XXX/AR9XXX built-in ethernet mac support"
> depends on ATH79
> - select NET_SELFTESTS
> select PHYLINK
> + imply NET_SELFTESTS
> help
> If you wish to compile a kernel for AR7XXX/91XXX and enable
> ethernet support, then you should always answer Y to this.
> diff --git a/drivers/net/ethernet/freescale/Kconfig b/drivers/net/ethernet/freescale/Kconfig
> index 3d937b4650b2..2d1abdd58fab 100644
> --- a/drivers/net/ethernet/freescale/Kconfig
> +++ b/drivers/net/ethernet/freescale/Kconfig
> @@ -26,8 +26,8 @@ config FEC
> ARCH_MXC || SOC_IMX28 || COMPILE_TEST)
> default ARCH_MXC || SOC_IMX28 if ARM
> select CRC32
> - select NET_SELFTESTS
> select PHYLIB
> + imply NET_SELFTESTS
> imply PTP_1588_CLOCK
> help
> Say Y here if you want to use the built-in 10/100 Fast ethernet
> diff --git a/include/net/selftests.h b/include/net/selftests.h
> index 9993b9498cf3..61926c33a022 100644
> --- a/include/net/selftests.h
> +++ b/include/net/selftests.h
> @@ -4,9 +4,28 @@
>
> #include <linux/ethtool.h>
>
> +#if IS_ENABLED(CONFIG_NET_SELFTESTS)
> +
> void net_selftest(struct net_device *ndev, struct ethtool_test *etest,
> u64 *buf);
> int net_selftest_get_count(void);
> void net_selftest_get_strings(u8 *data);
>
> +#else
> +
> +static inline void net_selftest(struct net_device *ndev, struct ethtool_test *etest,
> + u64 *buf)
> +{
> +}
> +
> +static inline int net_selftest_get_count(void)
> +{
> + return 0;
> +}
> +
> +static inline void net_selftest_get_strings(u8 *data)
> +{
> +}
> +
> +#endif
> #endif /* _NET_SELFTESTS */
> diff --git a/net/Kconfig b/net/Kconfig
> index 8d955195c069..f5ee7c65e6b4 100644
> --- a/net/Kconfig
> +++ b/net/Kconfig
> @@ -431,7 +431,7 @@ config SOCK_VALIDATE_XMIT
>
> config NET_SELFTESTS
> def_tristate PHYLIB
> - depends on PHYLIB
> + depends on PHYLIB && INET
>
> config NET_SOCK_MSG
> bool
> diff --git a/net/core/Makefile b/net/core/Makefile
> index 1a6168d8f23b..f7f16650fe9e 100644
> --- a/net/core/Makefile
> +++ b/net/core/Makefile
> @@ -21,6 +21,7 @@ obj-$(CONFIG_NETPOLL) += netpoll.o
> obj-$(CONFIG_FIB_RULES) += fib_rules.o
> obj-$(CONFIG_TRACEPOINTS) += net-traces.o
> obj-$(CONFIG_NET_DROP_MONITOR) += drop_monitor.o
> +obj-$(CONFIG_NET_SELFTESTS) += selftests.o
> obj-$(CONFIG_NETWORK_PHY_TIMESTAMPING) += timestamping.o
> obj-$(CONFIG_NET_PTP_CLASSIFY) += ptp_classifier.o
> obj-$(CONFIG_CGROUP_NET_PRIO) += netprio_cgroup.o
> @@ -33,7 +34,6 @@ obj-$(CONFIG_NET_DEVLINK) += devlink.o
> obj-$(CONFIG_GRO_CELLS) += gro_cells.o
> obj-$(CONFIG_FAILOVER) += failover.o
> ifeq ($(CONFIG_INET),y)
> -obj-$(CONFIG_NET_SELFTESTS) += selftests.o
> obj-$(CONFIG_NET_SOCK_MSG) += skmsg.o
> obj-$(CONFIG_BPF_SYSCALL) += sock_map.o
> endif
> diff --git a/net/dsa/Kconfig b/net/dsa/Kconfig
> index cbc2bd643ab2..183e27b50202 100644
> --- a/net/dsa/Kconfig
> +++ b/net/dsa/Kconfig
> @@ -9,7 +9,7 @@ menuconfig NET_DSA
> select NET_SWITCHDEV
> select PHYLINK
> select NET_DEVLINK
> - select NET_SELFTESTS
> + imply NET_SELFTESTS
> help
> Say Y if you want to enable support for the hardware switches supported
> by the Distributed Switch Architecture.
>


--
~Randy