]> git.baikalelectronics.ru Git - kernel.git/commit
fs_enet: Adjust BDs after tx error
authorMark Ware <mware@elphinstone.net>
Sat, 29 May 2010 07:16:28 +0000 (00:16 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 29 May 2010 07:16:28 +0000 (00:16 -0700)
commitf4ff1e5d32ef0e702a5f53e628a4deed41b09b5c
tree281bc5f61c4fd24f2c9f44cc1d936ae71d978def
parent05f84a3e2369b89ca54be75cf0f29a8af30cdad3
fs_enet: Adjust BDs after tx error

This patch fixes an occasional transmit lockup in the mac-fcc which
occurs after a tx error.  The test scenario had the local port set
to autoneg and the other end fixed at 100FD, resulting in a large
number of late collisions.

According to the MPC8280RM 30.10.1.3 (also 8272RM 29.10.1.3), after
a tx error occurs, TBPTR may sometimes point beyond BDs still marked
as ready.  This patch walks back through the BDs and points TBPTR to
the earliest one marked as ready.

Tested on a custom board with a MPC8280.

Signed-off-by: Mark Ware <mware@elphinstone.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/fs_enet/mac-fcc.c