linux/drivers/net/ethernet
Maciej Fijalkowski 7237f5b0db ice: introduce legacy Rx flag
Add an ethtool "legacy-rx" priv flag for toggling the Rx path. This
control knob will be mainly used for build_skb usage as well as buffer
size/MTU manipulation.

In preparation for adding build_skb support in a way that it takes
care of how we set the values of max_frame and rx_buf_len fields of
struct ice_vsi. Specifically, in this patch mentioned fields are set to
values that will allow us to provide headroom and tailroom in-place.

This can be mostly broken down onto following:
- for legacy-rx "on" ethtool control knob, old behaviour is kept;
- for standard 1500 MTU size configure the buffer of size 1536, as
  network stack is expecting the NET_SKB_PAD to be provided and
  NET_IP_ALIGN can have a non-zero value (these can be typically equal
  to 32 and 2, respectively);
- for larger MTUs go with max_frame set to 9k and configure the 3k
  buffer in case when PAGE_SIZE of underlying arch is less than 8k; 3k
  buffer is implying the need for order 1 page, so that our page
  recycling scheme can still be applied;

With that said, substitute the hardcoded ICE_RXBUF_2048 and PAGE_SIZE
values in DMA API that we're making use of with rx_ring->rx_buf_len and
ice_rx_pg_size(rx_ring). The latter is an introduced helper for
determining the page size based on its order (which was figured out via
ice_rx_pg_order). Last but not least, take care of truesize calculation.

In the followup patch the headroom/tailroom computation logic will be
introduced.

This change aligns the buffer and frame configuration with other Intel
drivers, most importantly with iavf.

Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2019-11-04 13:09:46 -08:00
..
3com
8390
adaptec
aeroflex
agere
alacritech
allwinner drivers: net: Fix Kconfig indentation 2019-09-26 08:56:17 +02:00
alteon
altera
amazon net: ena: ethtool: support set_channels callback 2019-10-07 09:30:03 -04:00
amd
apm
apple
aquantia net: aquantia: fix error handling in aq_ptp_poll 2019-10-29 16:42:17 -07:00
arc net: ethernet: arc: add the missed clk_disable_unprepare 2019-11-01 10:25:39 -07:00
atheros net: ag71xx: fix mdio subnode support 2019-10-01 10:19:19 -07:00
aurora
broadcom Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-02 13:54:56 -07:00
brocade
cadence macb: propagate errors when getting optional clocks 2019-10-19 11:58:39 -07:00
calxeda net/ethernet: xgmac don't set .driver twice 2019-10-09 21:09:59 -07:00
cavium cavium: thunder: Fix use true/false for bool type 2019-10-29 17:51:06 -07:00
chelsio Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-02 13:54:56 -07:00
cirrus
cisco
cortina net: ethernet: Use the correct style for SPDX License Identifier 2019-10-25 19:30:31 -07:00
davicom
dec
dlink
emulex drivers: net: Fix Kconfig indentation 2019-09-26 08:56:17 +02:00
ezchip
faraday Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-02 13:54:56 -07:00
freescale Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-02 13:54:56 -07:00
fujitsu
google gve: Fixes DMA synchronization. 2019-11-01 15:00:05 -07:00
hisilicon Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-02 13:54:56 -07:00
huawei
i825xx net: i82596: fix dma_alloc_attr for sni_82596 2019-10-15 20:50:05 -07:00
ibm net/ibmvnic: Fix EOI when running in XIVE mode. 2019-10-13 11:18:56 -07:00
intel ice: introduce legacy Rx flag 2019-11-04 13:09:46 -08:00
marvell Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-02 13:54:56 -07:00
mediatek net: mediatek: remove unneeded semicolon 2019-10-28 16:36:24 -07:00
mellanox mlx5-updates-2019-11-01 2019-11-03 19:23:49 -08:00
micrel Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2019-09-18 12:34:53 -07:00
microchip
moxa
mscc net: mscc: ocelot: refuse to overwrite the port's native vlan 2019-10-29 16:22:07 -07:00
myricom
natsemi
neterion
netronome Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-02 13:54:56 -07:00
ni net: nixge: Fix a signedness bug in nixge_probe() 2019-09-27 10:20:36 +02:00
nvidia Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-09-15 14:17:27 +02:00
nxp Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-10-20 10:43:00 -07:00
oki-semi
packetengines
pasemi
pensando Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-02 13:54:56 -07:00
qlogic Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-02 13:54:56 -07:00
qualcomm
rdc
realtek Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-02 13:54:56 -07:00
renesas
rocker net: fib_notifier: propagate extack down to the notifier block callback 2019-10-04 11:10:56 -07:00
samsung
seeq
sfc sfc: add XDP counters to ethtool stats 2019-10-31 14:14:53 -07:00
sgi
silan
sis
smsc
socionext net: netsec: Correct dma sync for XDP_TX frames 2019-10-17 15:35:56 -04:00
stmicro Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-11-02 13:54:56 -07:00
sun
synopsys
tehuti
ti davinci_cpdma: make cpdma_chan_split_pool static 2019-10-15 20:56:14 -07:00
toshiba
tundra
via
wiznet
xilinx net: axienet: fix a signedness bug in probe 2019-09-27 10:17:22 +02:00
xircom
xscale
dnet.c
dnet.h
ec_bhf.c
ethoc.c
fealnx.c
jme.c pci-v5.4-changes 2019-09-23 19:16:01 -07:00
jme.h
Kconfig hp100: Move 100BaseVG AnyLAN driver to staging 2019-10-31 14:49:52 -07:00
korina.c
lantiq_etop.c
lantiq_xrx200.c
Makefile hp100: Move 100BaseVG AnyLAN driver to staging 2019-10-31 14:49:52 -07:00