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)
commit32f6249ba7d63d5d86dae930d63ca70ec11d59af
tree281bc5f61c4fd24f2c9f44cc1d936ae71d978def
parent5b0daa3474d52bed906c4d5e92b44e10148c6972
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