linux/drivers/net/ethernet/freescale
Claudiu Manoil 50ad076ba4 gianfar: Fix reported number of sent bytes to BQL
Fix the amount of sent bytes reported to BQL by reporting the
number of bytes on wire in the xmit routine, and recording that
value for each skb in order to be correctly confirmed on Tx
confirmation cleanup.

Reporting skb->len to BQL just before exiting xmit is not correct
due to possible insertions of TOE block and alignment bytes in the
skb->data, which are being stripped off by the controller before
transmission on wire.  This led to mismatch of (incorrectly)
reported bytes to BQL b/w xmit and Tx confirmation, resulting in
Tx timeout firing, for the h/w tx timestamping acceleration case.

There's no easy way to obtain the number of bytes on wire in the Tx
confirmation routine, so skb->cb is used to convey that information
from xmit to Tx confirmation, for now (as proposed by Eric). Revived
the currently unused GFAR_CB() construct for that purpose.

Signed-off-by: Claudiu Manoil <claudiu.manoil@freescale.com>

Cc: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2013-09-03 22:14:28 -04:00
..
fs_enet fs_enet: cleanup clock API use 2013-08-22 22:13:54 -07:00
fec_main.c net/fec: cleanup types in fec_get_mac() 2013-08-30 17:54:27 -04:00
fec_mpc52xx_phy.c net: fec_mpc52xx_phy: remove unnecessary dev_set_drvdata() 2013-08-21 12:27:04 -07:00
fec_mpc52xx.c net: ethernet: use platform_{get,set}_drvdata() 2013-05-25 21:27:58 -07:00
fec_mpc52xx.h
fec_ptp.c fec: Only pass pdev in fec_ptp_init() 2013-06-07 14:41:07 -07:00
fec.h net: fec: workaround stop tx during errata ERR006358 2013-07-27 20:14:48 -07:00
fsl_pq_mdio.c net: fsl_pq_mdio: remove unnecessary dev_set_drvdata() 2013-08-21 12:27:04 -07:00
gianfar_ethtool.c gianfar: Add flow control support 2013-08-13 15:28:53 -07:00
gianfar_ptp.c net: ethernet: use platform_{get,set}_drvdata() 2013-05-25 21:27:58 -07:00
gianfar_sysfs.c gianfar: Use netdev_<level> when possible 2013-04-14 15:41:49 -04:00
gianfar.c gianfar: Fix reported number of sent bytes to BQL 2013-09-03 22:14:28 -04:00
gianfar.h gianfar: Fix reported number of sent bytes to BQL 2013-09-03 22:14:28 -04:00
Kconfig NET: FEC: dynamtic check DMA desc buff type 2013-01-04 15:15:39 -08:00
Makefile net: fec: build fec.c and fec_ptp.c to one module 2013-03-25 12:14:57 -04:00
ucc_geth_ethtool.c ucc_geth: Convert ugeth_<level> to pr_<level> 2013-04-14 15:41:49 -04:00
ucc_geth.c net: ucc_geth: remove unnecessary dev_set_drvdata() 2013-08-21 12:27:04 -07:00
ucc_geth.h net: remove skb recycling 2012-10-07 00:40:54 -04:00
xgmac_mdio.c net: ethernet: use platform_{get,set}_drvdata() 2013-05-25 21:27:58 -07:00