tg3: 5701 DMA corruption fix
authorMatt Carlson <mcarlson@broadcom.com>
Sun, 20 Apr 2008 01:12:33 +0000 (18:12 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 20 Apr 2008 01:12:33 +0000 (18:12 -0700)
commit41588ba1ae166eaba0a70abf2d7ff064ad9331d3
tree4ec3ef51db69aa0f9b6446435580115aa68098f7
parent36ef408061da9e012375547d69b27cc1f537b044
tg3: 5701 DMA corruption fix

Herbert Xu's commit fb93134dfc2a6e6fbedc7c270a31da03fce88db9, entitled
"[TCP]: Fix size calculation in sk_stream_alloc_pskb", has triggered a
bug in the 5701 where the 5701 DMA engine will corrupt outgoing
packets.  This problem only happens when the starting address of the
packet matches a certain range of offsets and only when the 5701 is
placed downstream of a particular Intel bridge.

This patch detects the problematic bridge and if present, readjusts the
starting address of the packet data to a dword aligned boundary.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tg3.c
drivers/net/tg3.h