OSDN Git Service

net: systemport: fix dma_unmap_single() len
authorFlorian Fainelli <f.fainelli@gmail.com>
Thu, 15 May 2014 21:33:52 +0000 (14:33 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 16 May 2014 20:41:40 +0000 (16:41 -0400)
commitb1ff53e9fd26a11ede97fcad5ff2e9be00b61bf8
treeb22bb1dce1a0d697f2ed42369a8f36867dacd063
parentbd508065749fcaa99f6eca927530d0d7e019224f
net: systemport: fix dma_unmap_single() len

dma_unmap_single() was called with dma_unmap_len(cb, dma_len),
unfortunately we failed to assign this length field in
bcm_sysport_rx_refill() or bcm_sysport_alloc_rx_bufs() using
dma_unmap_len_set().

This causes packet contents corruption because are we not invoking the
cache invalidation routines with the proper length.  Fix this by using
the full RX buffer size (RX_BUF_LENGTH) because the mappings for the RX
bufers are created with that size.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bcmsysport.c