linux/drivers/net/ethernet/sfc
Alexandre Rames 2acdb92e85 sfc: Fix DMA unmapping issue with firmware assisted TSO
When using firmware assisted TSO, we use a single DMA mapping for
the linear area of a TSO skb.

We still have to segment the super-packet and insert a descriptor
containing the original headers before each segment of payload, so we
can unmap the linear area only after the last segment is completed.
The unmapping information for the linear area is therefore associated
with the last header descriptor.

We calculate the DMA address to unmap from using the map length and
the invariant that the end of the DMA mapping matches the end of
the data referenced by the last descriptor.  But this invariant is
broken when there is TCP payload in the linear area.

Fix this by adding and using an explicit dma_offset field.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
2013-10-31 20:58:14 +00:00
..
bitfield.h sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
ef10_regs.h sfc: Use TX PIO for sufficiently small packets 2013-09-20 19:31:52 +01:00
ef10.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-10-08 23:07:53 -04:00
efx.c sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
efx.h sfc: Remove extern from function prototypes 2013-09-24 12:52:53 -07:00
enum.h sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
ethtool.c sfc: Use TX PIO for sufficiently small packets 2013-09-20 19:31:52 +01:00
falcon_boards.c sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
falcon.c sfc: check for allocation failure 2013-09-04 13:07:47 -04:00
farch_regs.h sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
farch.c sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
filter.h sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
io.h sfc: Allocate and link PIO buffers; map them with write-combining 2013-09-20 19:31:49 +01:00
Kconfig sfc: Minimal support for 40G link speed 2013-09-05 22:32:57 +01:00
Makefile sfc: Add support for Solarflare SFC9100 family 2013-08-29 19:19:29 +01:00
mcdi_mon.c sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
mcdi_pcol.h sfc: Add definitions for new stats counters and capability flag 2013-10-04 23:55:58 +01:00
mcdi_port.c sfc: Minimal support for 40G link speed 2013-09-05 22:32:57 +01:00
mcdi.c sfc: Only bind to EF10 functions with the LinkCtrl and Trusted flags 2013-10-07 20:11:19 +01:00
mcdi.h sfc: Remove extern from function prototypes 2013-09-24 12:52:53 -07:00
mdio_10g.c sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
mdio_10g.h sfc: Remove extern from function prototypes 2013-09-24 12:52:53 -07:00
mtd.c sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
net_driver.h sfc: Fix DMA unmapping issue with firmware assisted TSO 2013-10-31 20:58:14 +00:00
nic.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-10-08 23:07:53 -04:00
nic.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-10-08 23:07:53 -04:00
phy.h sfc: Remove extern from function prototypes 2013-09-24 12:52:53 -07:00
ptp.c sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
qt202x_phy.c sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
rx.c sfc: Support ARFS for IPv6 flows 2013-09-20 19:32:00 +01:00
selftest.c sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
selftest.h sfc: Remove extern from function prototypes 2013-09-24 12:52:53 -07:00
siena_sriov.c sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
siena.c sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
tenxpress.c sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
tx.c sfc: Fix DMA unmapping issue with firmware assisted TSO 2013-10-31 20:58:14 +00:00
txc43128_phy.c sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
vfdi.h sfc: Update copyright banners 2013-08-29 23:34:51 +01:00
workarounds.h sfc: Update copyright banners 2013-08-29 23:34:51 +01:00