linux/drivers/net/ethernet/marvell
Ezequiel Garcia 9e911414af net: mv643xx_eth: Fix highmem support in non-TSO egress path
Commit 69ad0dd7af
Author: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Date:   Mon May 19 13:59:59 2014 -0300

    net: mv643xx_eth: Use dma_map_single() to map the skb fragments

caused a nasty regression by removing the support for highmem skb
fragments. By using page_address() to get the address of a fragment's
page, we are assuming a lowmem page. However, such assumption is incorrect,
as fragments can be in highmem pages, resulting in very nasty issues.

This commit fixes this by using the skb_frag_dma_map() helper,
which takes care of mapping the skb fragment properly. Additionally,
the type of mapping is now tracked, so it can be unmapped using
dma_unmap_page or dma_unmap_single when appropriate.

This commit also fixes the error path in txq_init() to release the
resources properly.

Fixes: 69ad0dd7af ("net: mv643xx_eth: Use dma_map_single() to map the skb fragments")
Reported-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-01-26 16:14:40 -08:00
..
Kconfig net: pxa168_eth: PXA168_ETH should depend on HAS_DMA 2014-10-10 14:45:01 -04:00
Makefile ethernet: Add new driver for Marvell Armada 375 network unit 2014-07-10 17:18:24 -07:00
mv643xx_eth.c net: mv643xx_eth: Fix highmem support in non-TSO egress path 2015-01-26 16:14:40 -08:00
mvmdio.c net: mvmdio: Use devm_* API to simplify the code 2014-05-23 15:31:49 -04:00
mvneta.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-12-10 15:48:20 -05:00
mvpp2.c net: mvpp2: fix possible memory leak 2014-11-01 15:11:50 -04:00
pxa168_eth.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-12-10 15:48:20 -05:00
skge.c skge: Unmask interrupts in case of spurious interrupts 2014-12-05 21:33:19 -08:00
skge.h
sky2.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-12-10 15:48:20 -05:00
sky2.h sky2: Receive Overflows not counted 2013-03-29 14:53:19 -04:00