]> git.baikalelectronics.ru Git - kernel.git/commit
bnx2x: fix DMA unmapping of TSO split BDs
authorMichal Schmidt <mschmidt@redhat.com>
Thu, 9 Jan 2014 13:36:27 +0000 (14:36 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 10 Jan 2014 18:18:07 +0000 (13:18 -0500)
commit61917270fec1c6e5d247304743067f830d303f8a
treea0d1dd81b60340fcb9f451dba08d6361a24d974c
parent32c5dfd9d6142308990e7ec81f059f7eb0c15ee3
bnx2x: fix DMA unmapping of TSO split BDs

bnx2x triggers warnings with CONFIG_DMA_API_DEBUG=y:

  WARNING: CPU: 0 PID: 2253 at lib/dma-debug.c:887 check_unmap+0xf8/0x920()
  bnx2x 0000:28:00.0: DMA-API: device driver frees DMA memory with
  different size [device address=0x00000000da2b389e] [map size=1490 bytes]
  [unmap size=66 bytes]

The reason is that bnx2x splits a TSO BD into two BDs (headers + data)
using one DMA mapping for both, but it uses only the length of the first
BD when unmapping.

This patch fixes the bug by unmapping the whole length of the two BDs.

Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Acked-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c