1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- From patchwork Mon Mar 5 21:40:27 2018
- Content-Type: text/plain; charset="utf-8"
- MIME-Version: 1.0
- Content-Transfer-Encoding: 7bit
- Subject: [net, v2,
- 3/6] e1000e: Fix queue interrupt re-raising in Other interrupt
- X-Patchwork-Submitter: "Kirsher, Jeffrey T" <[email protected]>
- X-Patchwork-Id: 881775
- X-Patchwork-Delegate: [email protected]
- Message-Id: <[email protected]>
- To: [email protected]
- Cc: Benjamin Poirier <[email protected]>, [email protected],
- [email protected], [email protected], [email protected],
- Jeff Kirsher <[email protected]>
- Date: Mon, 5 Mar 2018 13:40:27 -0800
- From: Jeff Kirsher <[email protected]>
- List-Id: <netdev.vger.kernel.org>
- From: Benjamin Poirier <[email protected]>
- 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 <[email protected]>
- Acked-by: Alexander Duyck <[email protected]>
- Tested-by: Aaron Brown <[email protected]>
- Signed-off-by: Jeff Kirsher <[email protected]>
- ---
- drivers/net/ethernet/intel/e1000e/netdev.c | 3 +++
- 1 file changed, 3 insertions(+)
- --- a/drivers/net/ethernet/intel/e1000e/netdev.c
- +++ b/drivers/net/ethernet/intel/e1000e/netdev.c
- @@ -1915,6 +1915,9 @@ static irqreturn_t e1000_msix_other(int
- 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;
|