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 <mschm...@redhat.com>
> ---
>  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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to