mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-15 09:34:17 +00:00
igb: add support for device reset interrupt
This patch adds support for the global device reset interrupt. Without this change the drivers will report tx hangs on all ports when a global device reset occurs. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
959d20bfe8
commit
7f081d405a
@ -4110,6 +4110,9 @@ static irqreturn_t igb_msix_other(int irq, void *data)
|
||||
u32 icr = rd32(E1000_ICR);
|
||||
/* reading ICR causes bit 31 of EICR to be cleared */
|
||||
|
||||
if (icr & E1000_ICR_DRSTA)
|
||||
schedule_work(&adapter->reset_task);
|
||||
|
||||
if (icr & E1000_ICR_DOUTSYNC) {
|
||||
/* HW is reporting DMA is out of sync */
|
||||
adapter->stats.doosync++;
|
||||
@ -4733,6 +4736,9 @@ static irqreturn_t igb_intr_msi(int irq, void *data)
|
||||
|
||||
igb_write_itr(q_vector);
|
||||
|
||||
if (icr & E1000_ICR_DRSTA)
|
||||
schedule_work(&adapter->reset_task);
|
||||
|
||||
if (icr & E1000_ICR_DOUTSYNC) {
|
||||
/* HW is reporting DMA is out of sync */
|
||||
adapter->stats.doosync++;
|
||||
@ -4772,6 +4778,9 @@ static irqreturn_t igb_intr(int irq, void *data)
|
||||
if (!(icr & E1000_ICR_INT_ASSERTED))
|
||||
return IRQ_NONE;
|
||||
|
||||
if (icr & E1000_ICR_DRSTA)
|
||||
schedule_work(&adapter->reset_task);
|
||||
|
||||
if (icr & E1000_ICR_DOUTSYNC) {
|
||||
/* HW is reporting DMA is out of sync */
|
||||
adapter->stats.doosync++;
|
||||
|
Loading…
x
Reference in New Issue
Block a user