]> git.hungrycats.org Git - linux/commit
[e1000] 82544 PCI-X hang fix + TSO updates
authorScott Feldman <scott.feldman@intel.com>
Thu, 11 Sep 2003 11:10:40 +0000 (07:10 -0400)
committerStephen Hemminger <shemminger@osdl.org>
Thu, 11 Sep 2003 11:10:40 +0000 (07:10 -0400)
commitea23f627654df03c2ca0c234c074a9fea7d98c3d
tree9658bfae7b361d74ff6b379fa5cf565a973086a3
parent62e3d2b696eb3ed392e6b1d447dfa7194a9dd01c
[e1000] 82544 PCI-X hang fix + TSO updates

* Bug fix: 82544 hang with PCI-X: if outgoing Tx buffers terminate
  within evenly-aligned dwords, and the device is sharing the bus
  segment with another PCI-X device, 82544 can hang the bus on a
  split-completion transaction.  Fix is to split buffer into two
  buffers with the first one not terminating within evenly-aligned
  dword address, and the second one being 4-bytes, which goes as a
  non-split-conpletion PCI-X transaction.
* 8254x controllers that support TSO do an internal calculation to
  make sure there is enough FIFO space to handle the overhead
  of each TSO segment before DMA'ing TSO data from host memory.  The
  internal calculation is dependent on the mss of the TSO (defines
  the number of segments), but the reserved space is a constant, so
  we need to adjust the maximum size of each buffer queued to the
  hardware to hold the equation and not overrun the FIFO.  This is
  per TSO because the mss can change from one send to the next.
drivers/net/e1000/e1000.h
drivers/net/e1000/e1000_main.c