linux/drivers/net/ethernet/stmicro/stmmac
Niklas Cassel fe6af0e122 net: stmmac: set total length of the packet to be transmitted in TDES3
Field FL/TPL in register TDES3 is not correctly set on GMAC4.
TX appears to be functional on GMAC 4.10a even if this field is not set,
however, to avoid relying on undefined behavior, set the length in TDES3.

The field has a different meaning depending on if the TSE bit in TDES3
is set or not (TSO). However, regardless of the TSE bit, the field is
not optional. The field is already set correctly when the TSE bit is set.

Since there is no limit for the number of descriptors that can be
used for a single packet, the field should be set to the sum of
the buffers contained in:
[<desc with First Descriptor bit set> ... <desc n> ...
<desc with Last Descriptor bit set>], which should be equal to skb->len.

Signed-off-by: Niklas Cassel <niklas.cassel@axis.com>
Acked-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-04-13 12:40:09 -04:00
..
Kconfig stmicro: add more information to Kconfig 2017-01-18 12:12:04 -05:00
Makefile stmmac: adding new glue driver dwmac-dwc-qos-eth 2017-01-09 14:54:30 -05:00
altr_tse_pcs.c net: ethernet: Fix SGMII unable to switch speed and autonego failure 2016-11-15 12:06:24 -05:00
altr_tse_pcs.h net: ethernet: Add TSE PCS support to dwmac-socfpga 2016-07-10 22:07:50 -07:00
chain_mode.c net: stmmac: set total length of the packet to be transmitted in TDES3 2017-04-13 12:40:09 -04:00
common.h net: stmmac: set total length of the packet to be transmitted in TDES3 2017-04-13 12:40:09 -04:00
descs.h net: stmmac: remove freesoftware address 2017-02-08 15:11:23 -05:00
descs_com.h net: stmmac: remove freesoftware address 2017-02-08 15:11:23 -05:00
dwmac-dwc-qos-eth.c net: stmmac: dwc-qos: Add Tegra186 support 2017-03-12 23:35:21 -07:00
dwmac-generic.c net: stmmac: dwmac-generic: add missing compatible strings 2016-12-08 11:35:37 -05:00
dwmac-ipq806x.c net: ethernet: stmmac: fix of-node and fixed-link-phydev leaks 2016-12-02 10:42:47 -05:00
dwmac-lpc18xx.c net: ethernet: stmmac: fix of-node and fixed-link-phydev leaks 2016-12-02 10:42:47 -05:00
dwmac-meson.c net: ethernet: stmmac: fix of-node and fixed-link-phydev leaks 2016-12-02 10:42:47 -05:00
dwmac-meson8b.c net: stmmac: don't set tx delay in RGMII_ID and RGMII_TXID mode 2017-02-02 21:59:51 -05:00
dwmac-oxnas.c net: stmmac: dwmac-oxnas: use generic pm implementation 2017-01-03 09:33:00 -05:00
dwmac-rk.c net: stmmac: dwmac-rk: Add handling for RGMII_ID/RXID/TXID 2017-03-30 10:52:41 -07:00
dwmac-socfpga.c stmmac: move stmmac_clk, pclk, clk_ptp_ref and stmmac_rst to platform structure 2017-01-09 14:54:29 -05:00
dwmac-sti.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-12-03 12:29:53 -05:00
dwmac-stm32.c net: ethernet: stmmac: fix of-node and fixed-link-phydev leaks 2016-12-02 10:42:47 -05:00
dwmac-sunxi.c net: ethernet: stmmac: fix of-node and fixed-link-phydev leaks 2016-12-02 10:42:47 -05:00
dwmac4.h net: stmmac: RX queue routing configuration 2017-03-21 17:24:01 -07:00
dwmac4_core.c net: stmmac: add set_mac to the stmmac_ops 2017-03-24 12:36:42 -07:00
dwmac4_descs.c net: stmmac: set total length of the packet to be transmitted in TDES3 2017-04-13 12:40:09 -04:00
dwmac4_descs.h stmmac: fix PTP support for GMAC4 2016-11-15 19:56:17 -05:00
dwmac4_dma.c net: stmmac: dma channel init prepared for multiple queues 2017-03-15 14:44:32 -07:00
dwmac4_dma.h net: stmmac: rx and tx ring length prepared for multiple queues 2017-03-15 14:44:32 -07:00
dwmac4_lib.c net: stmmac: prepare rx/tx set tail function for multiple queues 2017-03-15 14:44:32 -07:00
dwmac100.h net: stmmac: remove freesoftware address 2017-02-08 15:11:23 -05:00
dwmac100_core.c net: stmmac: add set_mac to the stmmac_ops 2017-03-24 12:36:42 -07:00
dwmac100_dma.c net: stmmac: unify registers dumps methods 2017-02-24 11:42:33 -05:00
dwmac1000.h net: stmmac: remove freesoftware address 2017-02-08 15:11:23 -05:00
dwmac1000_core.c net: stmmac: add set_mac to the stmmac_ops 2017-03-24 12:36:42 -07:00
dwmac1000_dma.c net: stmmac: rx watchdog config prepared for multiple queues 2017-03-15 14:44:32 -07:00
dwmac_dma.h net: stmmac: prepare dma interrupt treatment for multiple queues 2017-03-15 14:44:32 -07:00
dwmac_lib.c net: stmmac: prepare dma interrupt treatment for multiple queues 2017-03-15 14:44:32 -07:00
enh_desc.c net: stmmac: set total length of the packet to be transmitted in TDES3 2017-04-13 12:40:09 -04:00
mmc.h net: stmmac: remove freesoftware address 2017-02-08 15:11:23 -05:00
mmc_core.c net: stmmac: remove freesoftware address 2017-02-08 15:11:23 -05:00
norm_desc.c net: stmmac: set total length of the packet to be transmitted in TDES3 2017-04-13 12:40:09 -04:00
ring_mode.c net: stmmac: set total length of the packet to be transmitted in TDES3 2017-04-13 12:40:09 -04:00
stmmac.h net: stmmac: adding multiple napi mechanism 2017-04-07 07:18:27 -07:00
stmmac_ethtool.c net: stmmac: rx watchdog config prepared for multiple queues 2017-03-15 14:44:32 -07:00
stmmac_hwtstamp.c net: stmmac: remove freesoftware address 2017-02-08 15:11:23 -05:00
stmmac_main.c net: stmmac: set total length of the packet to be transmitted in TDES3 2017-04-13 12:40:09 -04:00
stmmac_mdio.c net: stmmac: reduce indentation by adding a continue 2017-02-15 13:20:55 -05:00
stmmac_pci.c net: stmmac: RX queue routing configuration 2017-03-21 17:24:01 -07:00
stmmac_pcs.h drivers: net: stmmac: reworking the PCS code. 2016-06-28 08:54:23 -04:00
stmmac_platform.c net: stmmac: Restore DT backwards-compatibility 2017-03-22 12:15:15 -07:00
stmmac_platform.h net: ethernet: stmmac: fix of-node and fixed-link-phydev leaks 2016-12-02 10:42:47 -05:00
stmmac_ptp.c net: stmmac: remove freesoftware address 2017-02-08 15:11:23 -05:00
stmmac_ptp.h net: stmmac: remove freesoftware address 2017-02-08 15:11:23 -05:00