> From: Intel-wired-lan [mailto:intel-wired-lan-boun...@osuosl.org] On > Behalf Of Benjamin Poirier > Sent: Wednesday, February 7, 2018 10:47 PM > To: Kirsher, Jeffrey T <jeffrey.t.kirs...@intel.com> > Cc: netdev@vger.kernel.org; intel-wired-...@lists.osuosl.org; linux- > ker...@vger.kernel.org > Subject: [Intel-wired-lan] [PATCH net-queue 3/3] e1000e: Avoid missed > interrupts following ICR read. > > The 82574 specification update errata 12 states that interrupts may be > missed if ICR is read while INT_ASSERTED is not set. Avoid that problem by > setting all bits related to events that can trigger the Other interrupt in > IMS. > > The Other interrupt is raised for such events regardless of whether or not > they are set in IMS. However, only when they are set is the INT_ASSERTED > bit also set in ICR. > > By doing this, we ensure that INT_ASSERTED is always set when we read ICR > in e1000_msix_other() and steer clear of the errata. This also ensures that > ICR will automatically be cleared on read, therefore we no longer need to > clear bits explicitly. > > Signed-off-by: Benjamin Poirier <bpoir...@suse.com> > --- > drivers/net/ethernet/intel/e1000e/defines.h | 21 > ++++++++++++++++++++- > drivers/net/ethernet/intel/e1000e/netdev.c | 11 ++++------- > 2 files changed, 24 insertions(+), 8 deletions(-) >
Tested-by: Aaron Brown <aaron.f.br...@intel.com>