igb: use napi_schedule_irqoff() instead of napi_schedule()

Replace napi_schedule() with napi_schedule_irqoff()
in the interrupt handler path in igb driver

Tested on QEMU with igb NIC emulation (-nic user,model=igb)

Suggested-by: Kohei Enju <kohei@enjuk.jp>
Signed-off-by: Daiki Harada <daiky0325@gmail.com>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Link: https://patch.msgid.link/20260609213559.178657-10-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Daiki Harada 2026-06-09 14:35:50 -07:00 committed by Jakub Kicinski
parent 1b4558e0b4
commit ef298ba0f9

View File

@ -7157,7 +7157,7 @@ static irqreturn_t igb_msix_ring(int irq, void *data)
/* Write the ITR value calculated from the previous interrupt. */
igb_write_itr(q_vector);
napi_schedule(&q_vector->napi);
napi_schedule_irqoff(&q_vector->napi);
return IRQ_HANDLED;
}
@ -8198,7 +8198,7 @@ static irqreturn_t igb_intr_msi(int irq, void *data)
if (icr & E1000_ICR_TS)
igb_tsync_interrupt(adapter);
napi_schedule(&q_vector->napi);
napi_schedule_irqoff(&q_vector->napi);
return IRQ_HANDLED;
}
@ -8244,7 +8244,7 @@ static irqreturn_t igb_intr(int irq, void *data)
if (icr & E1000_ICR_TS)
igb_tsync_interrupt(adapter);
napi_schedule(&q_vector->napi);
napi_schedule_irqoff(&q_vector->napi);
return IRQ_HANDLED;
}