diff options
author | Michal Schmidt <mschmidt@redhat.com> | 2015-06-26 17:50:00 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-06-28 20:25:01 -0700 |
commit | 8031612d7fa8e49589a91da238a93a067826c668 (patch) | |
tree | 9f6e8e33b79fed5adc75395a49faa33949fdbe31 /samples | |
parent | 0f8b6cea1f3271ccc37dd2847b39e235461e0ced (diff) | |
download | op-kernel-dev-8031612d7fa8e49589a91da238a93a067826c668.zip op-kernel-dev-8031612d7fa8e49589a91da238a93a067826c668.tar.gz |
bnx2x: fix DMA API usage
With CONFIG_DMA_API_DEBUG=y bnx2x triggers the error "DMA-API: device
driver frees DMA memory with wrong function".
On archs where PAGE_SIZE > SGE_PAGE_SIZE it also triggers "DMA-API:
device driver frees DMA memory with different size".
Fix this by making the mapping and unmapping symmetric:
- Do not map the whole pool page at once. Instead map the
SGE_PAGE_SIZE-sized pieces individually, so they can be unmapped in
the same manner.
- What's mapped using dma_map_page() must be unmapped using
dma_unmap_page().
Tested on ppc64.
Fixes: 4cace675d687 ("bnx2x: Alloc 4k fragment for each rx ring buffer element")
Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'samples')
0 files changed, 0 insertions, 0 deletions