linux/drivers/net/ethernet
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
..
3com net: typhoon: remove unnecessary pci_set_drvdata() 2013-10-18 00:03:28 -04:00
8390 net: 8390: remove unnecessary pci_set_drvdata() 2013-10-18 00:03:28 -04:00
adaptec net: starfire: remove unnecessary pci_set_drvdata() 2013-10-18 00:03:28 -04:00
adi adi: Remove extern from function prototypes 2013-09-24 10:09:18 -04:00
aeroflex drivers:net: Convert dma_alloc_coherent(...__GFP_ZERO) to dma_zalloc_coherent 2013-08-29 21:55:23 -04:00
allwinner drivers: net: sun4i-emac: select MDIO_SUN4I 2013-07-26 13:57:58 -07:00
alteon net/ethernet/alteon/acenic: Use module_pci_driver to register driver 2013-05-22 14:35:04 -07:00
amd net: amd8111e: remove unnecessary pci_set_drvdata() 2013-10-18 00:03:29 -04:00
apple net:drivers/net: Miscellaneous conversions to ETH_ALEN 2013-10-02 17:04:45 -04:00
arc arc_emac: drop redundant mac address check 2013-10-29 22:52:45 -04:00
atheros net: alx: remove unnecessary pci_set_drvdata() 2013-10-18 00:03:29 -04:00
broadcom bgmac: pass received packet to the netif instead of copying it 2013-10-30 16:58:19 -04:00
brocade net: bna: remove unnecessary pci_set_drvdata() 2013-10-18 00:03:30 -04:00
cadence Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
calxeda net: calxedaxgmac: determine number of address filters at runtime 2013-10-02 16:10:29 -04:00
chelsio net: cxgb4vf: use DEFINE_PCI_DEVICE_TABLE 2013-10-22 02:19:23 -04:00
cirrus net: ep93xx_eth: use dev_get_platdata() 2013-08-30 17:43:35 -04:00
cisco net: enic: remove unnecessary pci_set_drvdata() 2013-10-18 00:03:30 -04:00
davicom Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-10-23 16:49:34 -04:00
dec net: tulip: use DEFINE_PCI_DEVICE_TABLE 2013-10-22 02:19:23 -04:00
dlink net: dl2k: remove unnecessary pci_set_drvdata() 2013-10-21 17:21:00 -04:00
emulex net/benet: Make lancer_wait_ready() static 2013-10-29 17:50:17 -04:00
faraday drivers:net: Convert dma_alloc_coherent(...__GFP_ZERO) to dma_zalloc_coherent 2013-08-29 21:55:23 -04:00
freescale Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-10-23 16:49:34 -04:00
fujitsu net: fujitsu: Remove ISA depdendency from Kconfig 2013-10-07 15:52:54 -04:00
hp hp100: replace hardcoded name in /proc/interrupts with interface name 2013-09-27 17:38:32 -04:00
i825xx net:drivers/net: Miscellaneous conversions to ETH_ALEN 2013-10-02 17:04:45 -04:00
ibm net:drivers/net: Miscellaneous conversions to ETH_ALEN 2013-10-02 17:04:45 -04:00
icplus net: icplus: remove unnecessary pci_set_drvdata() 2013-10-21 17:21:01 -04:00
intel i40e: fix error return code in i40e_probe() 2013-10-29 04:29:25 -07:00
marvell mvneta: drop redundant mac address check 2013-10-29 22:52:44 -04:00
mellanox Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-10-23 16:49:34 -04:00
micrel net: ksz884x: use DEFINE_PCI_DEVICE_TABLE 2013-10-22 02:19:23 -04:00
microchip
moxa ethernet: moxa: remove duplicate includes 2013-10-21 18:46:45 -04:00
myricom net: myri10ge: remove unnecessary pci_set_drvdata() 2013-10-21 17:21:02 -04:00
natsemi net: natsemi: remove unnecessary pci_set_drvdata() 2013-10-21 17:21:02 -04:00
neterion net: neterion: remove unnecessary pci_set_drvdata() 2013-10-21 17:21:02 -04:00
nuvoton drivers:net: delete premature free_irq 2013-09-04 13:18:19 -04:00
nvidia net/ethernet/nvidia/forcedeth: Use module_pci_driver to register driver 2013-05-22 14:35:05 -07:00
nxp net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00
octeon octeon_mgmt: drop redundant mac address check 2013-10-29 22:52:44 -04:00
oki-semi oki-semi: Remove extern from function prototypes 2013-09-24 12:51:46 -07:00
packetengines net: packetengines: remove unnecessary pci_set_drvdata() 2013-10-21 17:21:02 -04:00
pasemi net: pasemi: remove unnecessary pci_set_drvdata() 2013-10-22 02:11:51 -04:00
qlogic Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-10-23 16:49:34 -04:00
rdc net: r6040: remove unnecessary pci_set_drvdata() 2013-10-22 02:11:52 -04:00
realtek net: r8169: remove unnecessary pci_set_drvdata() 2013-10-22 02:11:52 -04:00
renesas sh_eth: add/use RMCR.RNC bit 2013-10-23 16:49:58 -04:00
seeq net: seeq: use dev_get_platdata() 2013-08-30 17:43:37 -04:00
sfc sfc: Fix DMA unmapping issue with firmware assisted TSO 2013-10-31 20:58:14 +00:00
sgi net:drivers/net: Miscellaneous conversions to ETH_ALEN 2013-10-02 17:04:45 -04:00
silan net/ethernet/silan/sc92031: Use module_pci_driver to register driver 2013-05-22 14:35:03 -07:00
sis net: sis190: remove unnecessary pci_set_drvdata() 2013-10-22 02:11:52 -04:00
smsc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-10-23 16:49:34 -04:00
stmicro net: stmmac: remove unnecessary pci_set_drvdata() 2013-10-22 02:11:53 -04:00
sun net: niu: remove unnecessary pci_set_drvdata() 2013-10-23 16:58:41 -04:00
tehuti net: tehuti: remove unnecessary pci_set_drvdata() 2013-10-23 16:58:41 -04:00
ti net: tlan: remove unnecessary pci_set_drvdata() 2013-10-23 16:58:41 -04:00
tile net:drivers/net: Miscellaneous conversions to ETH_ALEN 2013-10-02 17:04:45 -04:00
toshiba net: tc35815: remove unnecessary pci_set_drvdata() 2013-10-23 16:58:41 -04:00
tundra net: tsi108: use dev_get_platdata() 2013-08-30 17:43:38 -04:00
via net: via-rhine: remove unnecessary pci_set_drvdata() 2013-10-23 16:58:41 -04:00
wiznet net: w5100: use dev_get_platdata() 2013-08-30 17:43:38 -04:00
xilinx net:drivers/net: Miscellaneous conversions to ETH_ALEN 2013-10-02 17:04:45 -04:00
xircom
xscale net: ixp4xx_eth: use dev_get_platdata() 2013-08-30 17:43:39 -04:00
dnet.c
dnet.h
ethoc.c net: ethoc: use dev_get_platdata() 2013-08-30 17:43:35 -04:00
fealnx.c net: fealnx: remove unnecessary pci_set_drvdata() 2013-10-21 17:21:01 -04:00
jme.c net: jme: remove unnecessary pci_set_drvdata() 2013-10-21 17:21:01 -04:00
jme.h
Kconfig net: Add MOXA ART SoCs ethernet driver 2013-08-11 21:38:12 -07:00
korina.c net:drivers/net: Miscellaneous conversions to ETH_ALEN 2013-10-02 17:04:45 -04:00
lantiq_etop.c net: lantiq_etop: remove deprecated IRQF_DISABLED 2013-09-15 22:01:05 -04:00
Makefile net: Add MOXA ART SoCs ethernet driver 2013-08-11 21:38:12 -07:00
netx-eth.c net: netx-eth: remove unnecessary casting 2013-09-04 00:27:27 -04:00
s6gmac.c net: ethernet: remove unnecessary platform_set_drvdata() 2013-05-27 22:34:51 -07:00