mirror of
https://github.com/torvalds/linux.git
synced 2024-11-05 11:32:04 +00:00
54037505a5
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> |
||
---|---|---|
.. | ||
ixgbe_82598.c | ||
ixgbe_common.c | ||
ixgbe_common.h | ||
ixgbe_dcb_82598.c | ||
ixgbe_dcb_82598.h | ||
ixgbe_dcb_nl.c | ||
ixgbe_dcb.c | ||
ixgbe_dcb.h | ||
ixgbe_ethtool.c | ||
ixgbe_main.c | ||
ixgbe_phy.c | ||
ixgbe_phy.h | ||
ixgbe_type.h | ||
ixgbe.h | ||
Makefile |