linux_dsm_epyc7002/drivers/net/ethernet/amd
Lendacky, Thomas 622c36f143 amd-xgbe: Fix jumbo MTU processing on newer hardware
Newer hardware does not provide a cumulative payload length when multiple
descriptors are needed to handle the data. Once the MTU increases beyond
the size that can be handled by a single descriptor, the SKB does not get
built properly by the driver.

The driver will now calculate the size of the data buffers used by the
hardware.  The first buffer of the first descriptor is for packet headers
or packet headers and data when the headers can't be split. Subsequent
descriptors in a multi-descriptor chain will not use the first buffer. The
second buffer is used by all the descriptors in the chain for payload data.
Based on whether the driver is processing the first, intermediate, or last
descriptor it can calculate the buffer usage and build the SKB properly.

Tested and verified on both old and new hardware.

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-03-15 15:36:59 -07:00
..
xgbe amd-xgbe: Fix jumbo MTU processing on newer hardware 2017-03-15 15:36:59 -07:00
7990.c ethernet: amd: use IS_ENABLED() instead of checking for built-in or module 2016-09-12 20:27:58 -07:00
7990.h
a2065.c net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
a2065.h
am79c961a.c net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
am79c961a.h
amd8111e.c amd8111e: add GRO support 2017-02-05 16:11:57 -05:00
amd8111e.h ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
ariadne.c net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
ariadne.h
atarilance.c net: atarilance: use %8ph for printing hex string 2016-12-02 12:03:35 -05:00
au1000_eth.c net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
au1000_eth.h net: ethernet: amd: au1000_eth: use phydev from struct net_device 2016-07-15 16:41:35 -07:00
declance.c drivers: net: ethernet: remove incorrect __exit markups 2017-03-02 14:33:49 -08:00
hplance.c net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
hplance.h
Kconfig Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-12-12 19:56:15 -08:00
lance.c net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
Makefile amd-xgbe: Configuration and build support 2014-06-05 15:26:51 -07:00
mvme147.c net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
ni65.c net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
ni65.h
nmclan_cs.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
pcnet32.c pcnet32: fix BNC/AUI port on AM79C970A 2017-02-14 14:26:58 -05:00
sun3lance.c net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00
sunlance.c net: deprecate eth_change_mtu, remove usage 2016-10-13 09:36:57 -04:00