]> git.baikalelectronics.ru Git - kernel.git/commit
ixgbe: fix for 82598 Si errata causing buffer overflow
authorDon Skidmore <donald.c.skidmore@intel.com>
Sat, 21 Feb 2009 23:42:56 +0000 (15:42 -0800)
committerDavid S. Miller <davem@davemloft.net>
Sat, 21 Feb 2009 23:42:56 +0000 (15:42 -0800)
commitb9e91ad42b1add364a9066bdf6a4f77d81b85955
tree392180002bbc3b399881332d8bf2232a2c3fa274
parent875f4a4ff2fa59dff9e4322b2a9d291d3222908d
ixgbe: fix for 82598 Si errata causing buffer overflow

The failure happens when an interrupt occurs and the driver is reading
EICR.  This read will cause a clear-by-read which leads to two TLP
being inserted in the PCIe retry buffer leading to an overflow of the
buffer and corruption of TLPs.

The solution is different depending where the reading of EICR takes place.

For ixgbe_msix_lsc() since we are in MSIX mode and know OCD is enabled a
clear-by-write is done instead of the normal clear-by-read.

For ixgbe_intr() 0xffffffff is written to EIMC before the read, masking the
interrupts.

Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Acked-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ixgbe/ixgbe_main.c