Messages in this thread | | | From | Alexander Duyck <> | Date | Thu, 8 Feb 2018 06:23:25 -0800 | Subject | Re: [PATCH net-queue 2/3] e1000e: Fix queue interrupt re-raising in Other interrupt. |
| |
On Wed, Feb 7, 2018 at 10:47 PM, Benjamin Poirier <bpoirier@suse.com> wrote: > restores the ICS write for rx/tx queue interrupts which was present before > commit 16ecba59bc33 ("e1000e: Do not read ICR in Other interrupt", > v4.5-rc1) but was not restored in commit 4aea7a5c5e94 ("e1000e: Avoid > receiver overrun interrupt bursts", v4.15-rc1). > > This re-raises the queue interrupts in case the txq or rxq bits were set in > ICR and the Other interrupt handler read and cleared ICR before the queue > interrupt was raised. > > Fixes: 4aea7a5c5e94 ("e1000e: Avoid receiver overrun interrupt bursts") > Signed-off-by: Benjamin Poirier <bpoirier@suse.com>
Acked-by: Alexander Duyck <alexander.h.duyck@intel.com>
> --- > drivers/net/ethernet/intel/e1000e/netdev.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c > index 3b36efa6228d..2c9609bee2ae 100644 > --- a/drivers/net/ethernet/intel/e1000e/netdev.c > +++ b/drivers/net/ethernet/intel/e1000e/netdev.c > @@ -1919,6 +1919,9 @@ static irqreturn_t e1000_msix_other(int __always_unused irq, void *data) > icr = er32(ICR); > ew32(ICR, E1000_ICR_OTHER); > > + if (icr & adapter->eiac_mask) > + ew32(ICS, (icr & adapter->eiac_mask)); > + > if (icr & E1000_ICR_LSC) { > ew32(ICR, E1000_ICR_LSC); > hw->mac.get_link_status = true; > -- > 2.16.1 >
| |