mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-07 06:14:24 +08:00
0b32e91fdf
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>
40 lines
1.6 KiB
Plaintext
40 lines
1.6 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
config FSL_FMAN
|
|
tristate "FMan support"
|
|
depends on FSL_SOC || ARCH_LAYERSCAPE || COMPILE_TEST
|
|
select GENERIC_ALLOCATOR
|
|
select PHYLIB
|
|
select CRC32
|
|
default n
|
|
help
|
|
Freescale Data-Path Acceleration Architecture Frame Manager
|
|
(FMan) support
|
|
|
|
config DPAA_ERRATUM_A050385
|
|
bool
|
|
depends on ARM64 && FSL_DPAA
|
|
default y
|
|
help
|
|
DPAA FMan erratum A050385 software workaround implementation:
|
|
align buffers, data start, SG fragment length to avoid FMan DMA
|
|
splits.
|
|
FMAN DMA read or writes under heavy traffic load may cause FMAN
|
|
internal resource leak thus stopping further packet processing.
|
|
The FMAN internal queue can overflow when FMAN splits single
|
|
read or write transactions into multiple smaller transactions
|
|
such that more than 17 AXI transactions are in flight from FMAN
|
|
to interconnect. When the FMAN internal queue overflows, it can
|
|
stall further packet processing. The issue can occur with any
|
|
one of the following three conditions:
|
|
1. FMAN AXI transaction crosses 4K address boundary (Errata
|
|
A010022)
|
|
2. FMAN DMA address for an AXI transaction is not 16 byte
|
|
aligned, i.e. the last 4 bits of an address are non-zero
|
|
3. Scatter Gather (SG) frames have more than one SG buffer in
|
|
the SG list and any one of the buffers, except the last
|
|
buffer in the SG list has data size that is not a multiple
|
|
of 16 bytes, i.e., other than 16, 32, 48, 64, etc.
|
|
With any one of the above three conditions present, there is
|
|
likelihood of stalled FMAN packet processing, especially under
|
|
stress with multiple ports injecting line-rate traffic.
|