linux/drivers/net/ethernet
Maciej Fijalkowski c61bcebde7 ice: Prepare legacy-rx for upcoming XDP multi-buffer support
Rx path is going to be modified in a way that fragmented frame will be
gathered within xdp_buff in the first place. This approach implies that
underlying buffer has to provide tailroom for skb_shared_info. This is
currently the case when ring uses build_skb but not when legacy-rx knob
is turned on. This case configures 2k Rx buffers and has no way to
provide either headroom or tailroom - FWIW it currently has
XDP_PACKET_HEADROOM which is broken and in here it is removed. 2k Rx
buffers were used so driver in this setting was able to support 9k MTU
as it can chain up to 5 Rx buffers. With offset configuring HW writing
2k of a data was passing the half of the page which broke the assumption
of our internal page recycling tricks.

Now if above got fixed and legacy-rx path would be left as is, when
referring to skb_shared_info via xdp_get_shared_info_from_buff(),
packet's content would be corrupted again. Hence size of Rx buffer needs
to be lowered and therefore supported MTU. This operation will allow us
to keep the unified data path and with 8k MTU users (if any of
legacy-rx) would still be good to go. However, tendency is to drop the
support for this code path at some point.

Add ICE_RXBUF_1664 as vsi::rx_buf_len and ICE_MAX_FRAME_LEGACY_RX (8320)
as vsi::max_frame for legacy-rx. For bigger page sizes configure 3k Rx
buffers, not 2k.

Since headroom support is removed, disable data_meta support on legacy-rx.
When preparing XDP buff, rely on ice_rx_ring::rx_offset setting when
deciding whether to support data_meta or not.

Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Alexander Lobakin <alexandr.lobakin@intel.com>
Link: https://lore.kernel.org/bpf/20230131204506.219292-2-maciej.fijalkowski@intel.com
2023-02-01 23:30:26 +01:00
..
3com
8390 ethernet: 8390: remove unnecessary check of mem 2022-09-29 11:05:23 +02:00
actions net: Remove C45 check in C22 only MDIO bus drivers 2023-01-20 18:12:45 -08:00
adaptec
adi Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-01-27 22:56:18 -08:00
aeroflex ethernet: aeroflex: fix potential skb leak in greth_init_rings() 2022-12-07 11:45:52 +01:00
agere net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
alacritech net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers). 2022-10-28 20:13:54 -07:00
allwinner
alteon
altera Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-11-29 13:04:52 -08:00
amazon net: ena: Update NUMA TPH hint register upon NUMA node update 2022-12-30 07:43:44 +00:00
amd Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-01-20 12:28:23 -08:00
apm drivers: net: xgene: disable napi when register irq failed in xgene_enet_open() 2022-11-08 15:15:55 +01:00
apple net: apple: bmac: don't call dev_kfree_skb() under spin_lock_irqsave() 2022-12-12 09:53:10 +00:00
aquantia Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-11-29 13:04:52 -08:00
arc
asix net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers). 2022-10-28 20:13:54 -07:00
atheros net: alx: Switch to DEFINE_SIMPLE_DEV_PM_OPS() and pm_sleep_ptr() 2022-12-19 09:23:02 +00:00
broadcom net/tg3: resolve deadlock in tg3_reset_task() during EEH 2023-01-25 22:35:42 -08:00
brocade bna: Avoid clashing function prototypes 2022-11-21 08:17:59 +00:00
cadence Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-01-20 12:28:23 -08:00
calxeda net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
cavium liquidio: use strscpy() to instead of strncpy() 2022-12-12 10:00:55 +00:00
chelsio cxgb4: fill IPsec state validation failure reason 2023-01-26 16:28:48 -08:00
cirrus net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
cisco enic: define constants for legacy interrupts offset 2022-10-18 19:34:28 -07:00
cortina net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers). 2022-10-28 20:13:54 -07:00
davicom net: dm9051: Fix missing dev_kfree_skb() in dm9051_loop_rx() 2022-11-23 12:43:14 +00:00
dec
dlink sundance: remove unused variable cnt 2022-11-17 13:18:30 +01:00
emulex net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers). 2022-10-28 20:13:54 -07:00
engleder Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-01-27 22:56:18 -08:00
ezchip
faraday net: ftmac100: handle netdev flags IFF_PROMISC and IFF_ALLMULTI 2023-01-18 13:03:40 +00:00
freescale Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-01-27 22:56:18 -08:00
fujitsu
fungible net: remove redundant config PCI dependency for some network driver configs 2023-01-12 21:38:10 -08:00
google gve: Handle alternate miss completions 2022-11-21 10:52:14 +00:00
hisilicon net: add missing includes of linux/sched/clock.h 2023-01-27 11:19:46 +00:00
huawei Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-11-17 18:30:39 -08:00
i825xx
ibm ibmvnic: Update XPS assignments during affinity binding 2022-11-14 10:47:07 +00:00
intel ice: Prepare legacy-rx for upcoming XDP multi-buffer support 2023-02-01 23:30:26 +01:00
litex net: ethernet: litex: Fix return type of liteeth_start_xmit 2022-09-19 18:23:39 -07:00
marvell net: Remove C45 check in C22 only MDIO bus drivers 2023-01-20 18:12:45 -08:00
mediatek net: Remove C45 check in C22 only MDIO bus drivers 2023-01-20 18:12:45 -08:00
mellanox bpf-next-for-netdev 2023-01-28 00:00:14 -08:00
micrel net: ksz884x: fix missing pci_disable_device() on error in pcidev_init() 2022-10-25 19:46:35 -07:00
microchip Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-01-27 22:56:18 -08:00
microsoft net: mana: Fix IRQ name - add PCI and queue number 2023-01-20 18:17:17 -08:00
moxa
mscc net: ethtool: provide shims for stats aggregation helpers when CONFIG_ETHTOOL_NETLINK=n 2023-01-26 15:28:25 +01:00
myricom myri10ge: Fix an error handling path in myri10ge_probe() 2022-12-19 12:30:32 +00:00
natsemi net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
neterion ethernet: s2io: don't call dev_kfree_skb() under spin_lock_irqsave() 2022-12-12 09:38:24 +00:00
netronome devlink: protect devlink param list by instance lock 2023-01-27 12:32:02 +00:00
ni net: nixge: Separate C22 and C45 transactions 2023-01-17 19:34:08 -08:00
nvidia net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers). 2022-10-28 20:13:54 -07:00
nxp
oki-semi net: pch_gbe: fix pci device refcount leak while module exiting 2022-11-18 19:40:14 -08:00
packetengines
pasemi net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
pensando net: devlink: let the core report the driver name instead of the drivers 2022-11-30 21:49:38 -08:00
qlogic Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-01-27 22:56:18 -08:00
qualcomm net: qualcomm: rmnet: add ethtool support for configuring tx aggregation 2023-01-13 10:23:52 +00:00
rdc r6040: Fix kmemleak in probe and remove 2022-12-15 12:48:34 +01:00
realtek r8169: reset bus if NIC isn't accessible after tx timeout 2023-01-16 13:38:28 +00:00
renesas Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-01-27 22:56:18 -08:00
rocker rocker: Explicitly mark learned FDB entries as offloaded 2022-11-02 20:45:23 -07:00
samsung net: sxgbe: Separate C22 and C45 transactions 2023-01-17 19:34:08 -08:00
seeq
sfc sfc: use sysfs_emit() to instead of scnprintf() 2022-12-06 20:37:38 -08:00
sgi
silan
sis
smsc net: remove smc911x driver 2022-10-18 19:33:51 -07:00
socionext net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers). 2022-10-28 20:13:54 -07:00
stmicro Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2023-01-20 12:28:23 -08:00
sun treewide: Convert del_timer*() to timer_shutdown*() 2022-12-25 13:38:09 -08:00
sunplus net: Remove C45 check in C22 only MDIO bus drivers 2023-01-20 18:12:45 -08:00
synopsys net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
tehuti net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
ti net: ethernet: ti: am65-cpsw/cpts: Fix CPTS release action 2023-01-24 10:08:50 +01:00
toshiba net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
tundra ethernet: tundra: free irq when alloc ring failed in tsi108_open() 2022-11-10 15:39:08 +01:00
vertexcom net: vertexcom: mse102x: Silence no spi_device_id warnings 2022-09-26 12:46:16 -07:00
via net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers). 2022-10-28 20:13:54 -07:00
wangxun net: ngbe: Drop mdiobus_c45_regad() 2023-01-20 18:12:45 -08:00
wiznet
xilinx Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-12-13 09:49:29 +01:00
xircom
xscale ptp_ixp46x: convert .adjfreq to .adjfine 2022-11-11 10:58:39 +00:00
dnet.c net: ethernet: dnet: don't call dev_kfree_skb() under spin_lock_irqsave() 2022-12-12 09:56:17 +00:00
dnet.h
ec_bhf.c
ethoc.c net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
jme.c net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
jme.h
Kconfig eth: fealnx: delete the driver for Myson MTD-800 2022-10-27 13:32:08 +02:00
korina.c net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
lantiq_etop.c net: lantiq_etop: don't free skb when returning NETDEV_TX_BUSY 2022-10-24 13:02:18 +01:00
lantiq_xrx200.c net: drop the weight argument from netif_napi_add 2022-09-28 18:57:14 -07:00
Makefile eth: fealnx: delete the driver for Myson MTD-800 2022-10-27 13:32:08 +02:00