]> git.baikalelectronics.ru Git - kernel.git/commit
sfc: Work around XMAC bug causing packet loss with some peers
authorBen Hutchings <bhutchings@solarflare.com>
Wed, 26 Aug 2009 08:17:59 +0000 (08:17 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 27 Aug 2009 00:38:56 +0000 (17:38 -0700)
commit9bea8c48db524650c27e8306714b973786308c26
tree26a5e7a01cc798738acd5522b2a183184b5ee0ac
parent579e7886a20ba2b9c9e26d6c22a08ae0cfc5ea4a
sfc: Work around XMAC bug causing packet loss with some peers

Received frames must be re-clocked by the local XGXS to the 156.25 MHz
(DDR) clock of the XGMII.  If the remote clock is slightly faster this
can reduce a minimum IPG of 64 bit-times (1 cycle) to 32 bit-times
(half a cycle).  If the XMAC detects that a frame has reached the
maximum RX frame length in the same cycle that it receives one of
these reduced IPGs, it may miss the IPG, causing two valid frames to
be treated as a single invalid frame (over-length with bad CRC).

We work around this by increasing the maximum RX frame length so that
peers with matched MTU will not provoke this bug.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/sfc/net_driver.h