linux/drivers/net/ethernet/intel
Benjamin Poirier 0a8047ac68 e1000e: Fix msi-x interrupt automask
Since the introduction of 82574 support in e1000e, the driver has worked
on the assumption that msi-x interrupt generation is automatically
disabled after each irq. As it turns out, this is not the case.
Currently, rx interrupts can fire multiple times before and during napi
processing. This can be a problem for users because frames that arrive
in a certain window (after adapter->clean_rx() but before
napi_complete_done() has cleared NAPI_STATE_SCHED) generate an interrupt
which does not lead to napi_schedule(). These frames sit in the rx queue
until another frame arrives (a tcp retransmit for example).

While the EIAC and CTRL_EXT registers are properly configured for irq
automask, the modification of IAM in e1000_configure_msix() is what
prevents automask from working as intended.

This patch removes that erroneous write and fixes interrupt rearming for
tx interrupts. It also clears IAME from CTRL_EXT. This is not strictly
necessary for operation of the driver but it is to avoid disruption from
potential programs that access the registers directly, like `ethregs -c`.

Reported-by: Frank Steiner <steiner-reg@bio.ifi.lmu.de>
Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2015-12-14 20:19:47 -08:00
..
e1000 e1000: Elementary checkpatch warnings and checks removed 2015-12-12 23:13:52 -08:00
e1000e e1000e: Fix msi-x interrupt automask 2015-12-14 20:19:47 -08:00
fm10k fm10k: initialize xps at driver load 2015-12-13 15:28:43 -08:00
i40e i40e/i40evf: Bump i40e to 1.4.8 and i40evf to 1.4.4 2015-12-12 21:08:59 -08:00
i40evf i40e/i40evf: Bump i40e to 1.4.8 and i40evf to 1.4.4 2015-12-12 21:08:59 -08:00
igb igb: Explicitly label self-test result indices 2015-12-14 16:07:21 -08:00
igbvf drivers/net/intel: use napi_complete_done() 2015-10-16 04:33:46 -07:00
ixgb drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
ixgbe ixgbe: do not report 2.5 Gbps as supported 2015-12-12 02:39:02 -08:00
ixgbevf ixgbevf: Handle extended IPv6 headers in Tx path 2015-12-03 02:45:14 -08:00
e100.c
Kconfig Revert "i40e: remove CONFIG_I40E_VXLAN" 2015-12-06 11:23:30 -05:00
Makefile