On 06/26/2015 05:50 PM, Michal Schmidt wrote:
> 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 <[email protected]>
> ---
> drivers/net/ethernet/broadcom/bnx2x/bnx2x.h | 1 -
> drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 23 ++++++++++-------------
> drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 12 ++----------
> 3 files changed, 12 insertions(+), 24 deletions(-)
The two patches I sent are absolutely identical.
I just sent it twice by mistake. Sorry for any confusion.
Michal
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html