[PATCH iwl-next v1 2/2] igc: use napi_schedule_irqoff() instead of napi_schedule()

Daiki Harada posted 2 patches 1 day, 1 hour ago
[PATCH iwl-next v1 2/2] igc: use napi_schedule_irqoff() instead of napi_schedule()
Posted by Daiki Harada 1 day, 1 hour ago
Replace napi_schedule() with napi_schedule_irqoff() 
in the interrupt handler path in igc driver
Tested on Intel Corporation Ethernet Controller I226-V.

Suggested-by: Kohei Enju <kohei@enjuk.jp>
Signed-off-by: Daiki Harada <daiky0325@gmail.com>
---
 drivers/net/ethernet/intel/igc/igc_main.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c
index 72bc5128d8b8..712605886104 100644
--- a/drivers/net/ethernet/intel/igc/igc_main.c
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
@@ -5688,7 +5688,7 @@ static irqreturn_t igc_msix_ring(int irq, void *data)
 	/* Write the ITR value calculated from the previous interrupt. */
 	igc_write_itr(q_vector);
 
-	napi_schedule(&q_vector->napi);
+	napi_schedule_irqoff(&q_vector->napi);
 
 	return IRQ_HANDLED;
 }
@@ -6059,7 +6059,7 @@ static irqreturn_t igc_intr_msi(int irq, void *data)
 	if (icr & IGC_ICR_TS)
 		igc_tsync_interrupt(adapter);
 
-	napi_schedule(&q_vector->napi);
+	napi_schedule_irqoff(&q_vector->napi);
 
 	return IRQ_HANDLED;
 }
@@ -6105,7 +6105,7 @@ static irqreturn_t igc_intr(int irq, void *data)
 	if (icr & IGC_ICR_TS)
 		igc_tsync_interrupt(adapter);
 
-	napi_schedule(&q_vector->napi);
+	napi_schedule_irqoff(&q_vector->napi);
 
 	return IRQ_HANDLED;
 }
-- 
2.53.0
RE: [Intel-wired-lan] [PATCH iwl-next v1 2/2] igc: use napi_schedule_irqoff() instead of napi_schedule()
Posted by Loktionov, Aleksandr 4 hours ago

> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf
> Of Daiki Harada
> Sent: Tuesday, March 31, 2026 12:39 PM
> To: intel-wired-lan@lists.osuosl.org; netdev@vger.kernel.org; linux-
> kernel@vger.kernel.org
> Cc: Nguyen, Anthony L <anthony.l.nguyen@intel.com>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@intel.com>; Andrew Lunn
> <andrew+netdev@lunn.ch>; David S. Miller <davem@davemloft.net>; Eric
> Dumazet <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo
> Abeni <pabeni@redhat.com>; Daiki Harada <daiky0325@gmail.com>; Kohei
> Enju <kohei@enjuk.jp>
> Subject: [Intel-wired-lan] [PATCH iwl-next v1 2/2] igc: use
> napi_schedule_irqoff() instead of napi_schedule()
> 
> Replace napi_schedule() with napi_schedule_irqoff() in the interrupt
> handler path in igc driver Tested on Intel Corporation Ethernet
> Controller I226-V.
> 
> Suggested-by: Kohei Enju <kohei@enjuk.jp>
> Signed-off-by: Daiki Harada <daiky0325@gmail.com>
> ---
>  drivers/net/ethernet/intel/igc/igc_main.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/igc/igc_main.c
> b/drivers/net/ethernet/intel/igc/igc_main.c
> index 72bc5128d8b8..712605886104 100644
> --- a/drivers/net/ethernet/intel/igc/igc_main.c
> +++ b/drivers/net/ethernet/intel/igc/igc_main.c
> @@ -5688,7 +5688,7 @@ static irqreturn_t igc_msix_ring(int irq, void
> *data)
>  	/* Write the ITR value calculated from the previous interrupt.
> */
>  	igc_write_itr(q_vector);
> 
> -	napi_schedule(&q_vector->napi);
> +	napi_schedule_irqoff(&q_vector->napi);
> 
>  	return IRQ_HANDLED;
>  }
> @@ -6059,7 +6059,7 @@ static irqreturn_t igc_intr_msi(int irq, void
> *data)
>  	if (icr & IGC_ICR_TS)
>  		igc_tsync_interrupt(adapter);
> 
> -	napi_schedule(&q_vector->napi);
> +	napi_schedule_irqoff(&q_vector->napi);
> 
>  	return IRQ_HANDLED;
>  }
> @@ -6105,7 +6105,7 @@ static irqreturn_t igc_intr(int irq, void *data)
>  	if (icr & IGC_ICR_TS)
>  		igc_tsync_interrupt(adapter);
> 
> -	napi_schedule(&q_vector->napi);
> +	napi_schedule_irqoff(&q_vector->napi);
> 
>  	return IRQ_HANDLED;
>  }
> --
> 2.53.0

Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>