Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ethernet: select CONFIG_CRC32 as needed

A number of ethernet drivers require crc32 functionality to be
avaialable in the kernel, causing a link error otherwise:

arm-linux-gnueabi-ld: drivers/net/ethernet/agere/et131x.o: in function `et1310_setup_device_for_multicast':
et131x.c:(.text+0x5918): undefined reference to `crc32_le'
arm-linux-gnueabi-ld: drivers/net/ethernet/cadence/macb_main.o: in function `macb_start_xmit':
macb_main.c:(.text+0x4b88): undefined reference to `crc32_le'
arm-linux-gnueabi-ld: drivers/net/ethernet/faraday/ftgmac100.o: in function `ftgmac100_set_rx_mode':
ftgmac100.c:(.text+0x2b38): undefined reference to `crc32_le'
arm-linux-gnueabi-ld: drivers/net/ethernet/freescale/fec_main.o: in function `set_multicast_list':
fec_main.c:(.text+0x6120): undefined reference to `crc32_le'
arm-linux-gnueabi-ld: drivers/net/ethernet/freescale/fman/fman_dtsec.o: in function `dtsec_add_hash_mac_address':
fman_dtsec.c:(.text+0x830): undefined reference to `crc32_le'
arm-linux-gnueabi-ld: drivers/net/ethernet/freescale/fman/fman_dtsec.o:fman_dtsec.c:(.text+0xb68): more undefined references to `crc32_le' follow
arm-linux-gnueabi-ld: drivers/net/ethernet/netronome/nfp/nfpcore/nfp_hwinfo.o: in function `nfp_hwinfo_read':
nfp_hwinfo.c:(.text+0x250): undefined reference to `crc32_be'
arm-linux-gnueabi-ld: nfp_hwinfo.c:(.text+0x288): undefined reference to `crc32_be'
arm-linux-gnueabi-ld: drivers/net/ethernet/netronome/nfp/nfpcore/nfp_resource.o: in function `nfp_resource_acquire':
nfp_resource.c:(.text+0x144): undefined reference to `crc32_be'
arm-linux-gnueabi-ld: nfp_resource.c:(.text+0x158): undefined reference to `crc32_be'
arm-linux-gnueabi-ld: drivers/net/ethernet/nxp/lpc_eth.o: in function `lpc_eth_set_multicast_list':
lpc_eth.c:(.text+0x1934): undefined reference to `crc32_le'
arm-linux-gnueabi-ld: drivers/net/ethernet/rocker/rocker_ofdpa.o: in function `ofdpa_flow_tbl_do':
rocker_ofdpa.c:(.text+0x2e08): undefined reference to `crc32_le'
arm-linux-gnueabi-ld: drivers/net/ethernet/rocker/rocker_ofdpa.o: in function `ofdpa_flow_tbl_del':
rocker_ofdpa.c:(.text+0x3074): undefined reference to `crc32_le'
arm-linux-gnueabi-ld: drivers/net/ethernet/rocker/rocker_ofdpa.o: in function `ofdpa_port_fdb':
arm-linux-gnueabi-ld: drivers/net/ethernet/mellanox/mlx5/core/steering/dr_ste.o: in function `mlx5dr_ste_calc_hash_index':
dr_ste.c:(.text+0x354): undefined reference to `crc32_le'
arm-linux-gnueabi-ld: drivers/net/ethernet/microchip/lan743x_main.o: in function `lan743x_netdev_set_multicast':
lan743x_main.c:(.text+0x5dc4): undefined reference to `crc32_le'

Add the missing 'select CRC32' entries in Kconfig for each of them.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Acked-by: Madalin Bucur <madalin.bucur@oss.nxp.com>
Acked-by: Mark Einon <mark.einon@gmail.com>
Acked-by: Simon Horman <simon.horman@netronome.com>
Link: https://lore.kernel.org/r/20201203232114.1485603-1-arnd@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Arnd Bergmann and committed by
Jakub Kicinski
0b32e91f 1130b252

+10
+1
drivers/net/ethernet/agere/Kconfig
··· 21 21 tristate "Agere ET-1310 Gigabit Ethernet support" 22 22 depends on PCI 23 23 select PHYLIB 24 + select CRC32 24 25 help 25 26 This driver supports Agere ET-1310 ethernet adapters. 26 27
+1
drivers/net/ethernet/cadence/Kconfig
··· 23 23 tristate "Cadence MACB/GEM support" 24 24 depends on HAS_DMA && COMMON_CLK 25 25 select PHYLINK 26 + select CRC32 26 27 help 27 28 The Cadence MACB ethernet interface is found on many Atmel AT32 and 28 29 AT91 parts. This driver also supports the Cadence GEM (Gigabit
+1
drivers/net/ethernet/faraday/Kconfig
··· 33 33 depends on !64BIT || BROKEN 34 34 select PHYLIB 35 35 select MDIO_ASPEED if MACH_ASPEED_G6 36 + select CRC32 36 37 help 37 38 This driver supports the FTGMAC100 Gigabit Ethernet controller 38 39 from Faraday. It is used on Faraday A369, Andes AG102 and some
+1
drivers/net/ethernet/freescale/Kconfig
··· 25 25 depends on (M523x || M527x || M5272 || M528x || M520x || M532x || \ 26 26 ARCH_MXC || SOC_IMX28 || COMPILE_TEST) 27 27 default ARCH_MXC || SOC_IMX28 if ARM 28 + select CRC32 28 29 select PHYLIB 29 30 imply PTP_1588_CLOCK 30 31 help
+1
drivers/net/ethernet/freescale/fman/Kconfig
··· 4 4 depends on FSL_SOC || ARCH_LAYERSCAPE || COMPILE_TEST 5 5 select GENERIC_ALLOCATOR 6 6 select PHYLIB 7 + select CRC32 7 8 default n 8 9 help 9 10 Freescale Data-Path Acceleration Architecture Frame Manager
+1
drivers/net/ethernet/mellanox/mlx5/core/Kconfig
··· 198 198 config MLX5_SW_STEERING 199 199 bool "Mellanox Technologies software-managed steering" 200 200 depends on MLX5_CORE_EN && MLX5_ESWITCH 201 + select CRC32 201 202 default y 202 203 help 203 204 Build support for software-managed steering in the NIC.
+1
drivers/net/ethernet/microchip/Kconfig
··· 47 47 depends on PCI 48 48 select PHYLIB 49 49 select CRC16 50 + select CRC32 50 51 help 51 52 Support for the Microchip LAN743x PCI Express Gigabit Ethernet chip 52 53
+1
drivers/net/ethernet/netronome/Kconfig
··· 22 22 depends on VXLAN || VXLAN=n 23 23 depends on TLS && TLS_DEVICE || TLS_DEVICE=n 24 24 select NET_DEVLINK 25 + select CRC32 25 26 help 26 27 This driver supports the Netronome(R) NFP4000/NFP6000 based 27 28 cards working as a advanced Ethernet NIC. It works with both
+1
drivers/net/ethernet/nxp/Kconfig
··· 3 3 tristate "NXP ethernet MAC on LPC devices" 4 4 depends on ARCH_LPC32XX || COMPILE_TEST 5 5 select PHYLIB 6 + select CRC32 6 7 help 7 8 Say Y or M here if you want to use the NXP ethernet MAC included on 8 9 some NXP LPC devices. You can safely enable this option for LPC32xx
+1
drivers/net/ethernet/rocker/Kconfig
··· 19 19 config ROCKER 20 20 tristate "Rocker switch driver (EXPERIMENTAL)" 21 21 depends on PCI && NET_SWITCHDEV && BRIDGE 22 + select CRC32 22 23 help 23 24 This driver supports Rocker switch device. 24 25