]> 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)
commit9427937a0ab3a1d0e48f496ac2360e968ba51944
treea0d1dd81b60340fcb9f451dba08d6361a24d974c
parentcde5c18388dd75aa24d905c2ad56d8568c5f9bb8
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