diff options
author | Ezequiel Garcia <ezequiel.garcia@free-electrons.com> | 2015-01-22 11:33:02 -0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-01-26 16:14:40 -0800 |
commit | 9e911414af8caf20d064fe97e946f1a54f110e69 (patch) | |
tree | 86b24c5965fbc8abf304b821b3fc824c23e9feec /net | |
parent | 9d08da9630cc7a7e97fe163fc2837c6bf1c86a56 (diff) |
net: mv643xx_eth: Fix highmem support in non-TSO egress path
Commit 69ad0dd7af22b61d9e0e68e56b6290121618b0fb
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: 69ad0dd7af22 ("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>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions