* [PATCH 5.15.y] gve: defer interrupt enabling until NAPI registration
2026-02-13 21:16 [PATCH 5.10.y] gve: defer interrupt enabling until NAPI registration Joshua Washington
@ 2026-02-13 21:17 ` Joshua Washington
2026-02-13 21:17 ` [PATCH 6.1.y] " Joshua Washington
2026-02-13 21:17 ` [PATCH 6.6.y] " Joshua Washington
2 siblings, 0 replies; 8+ messages in thread
From: Joshua Washington @ 2026-02-13 21:17 UTC (permalink / raw)
To: stable
Cc: Ankit Garg, Jordan Rhee, Harshitha Ramamurthy, Paolo Abeni,
Joshua Washington
From: Ankit Garg <nktgrg@google.com>
[ Upstream commit 3d970eda003441f66551a91fda16478ac0711617 ]
Currently, interrupts are automatically enabled immediately upon
request. This allows interrupt to fire before the associated NAPI
context is fully initialized and cause failures like below:
[ 0.946369] Call Trace:
[ 0.946369] <IRQ>
[ 0.946369] __napi_poll+0x2a/0x1e0
[ 0.946369] net_rx_action+0x2f9/0x3f0
[ 0.946369] handle_softirqs+0xd6/0x2c0
[ 0.946369] ? handle_edge_irq+0xc1/0x1b0
[ 0.946369] __irq_exit_rcu+0xc3/0xe0
[ 0.946369] common_interrupt+0x81/0xa0
[ 0.946369] </IRQ>
[ 0.946369] <TASK>
[ 0.946369] asm_common_interrupt+0x22/0x40
[ 0.946369] RIP: 0010:pv_native_safe_halt+0xb/0x10
Use the `IRQF_NO_AUTOEN` flag when requesting interrupts to prevent auto
enablement and explicitly enable the interrupt in NAPI initialization
path (and disable it during NAPI teardown).
This ensures that interrupt lifecycle is strictly coupled with
readiness of NAPI context.
Cc: stable@vger.kernel.org
Fixes: 893ce44df565 ("gve: Add basic driver framework for Compute Engine Virtual NIC")
Signed-off-by: Ankit Garg <nktgrg@google.com>
Reviewed-by: Jordan Rhee <jordanrhee@google.com>
Signed-off-by: Harshitha Ramamurthy <hramamurthy@google.com>
Link: https://patch.msgid.link/20251219102945.2193617-1-hramamurthy@google.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Joshua Washington <joshwash@google.com>
---
Note: This patch has been modified form the original to re-introduce the
irq member to struct gve_notify_block, which was introuduced in commit
9a5e0776d11f ("gve: Avoid rescheduling napi if on wrong cpu").
---
drivers/net/ethernet/google/gve/gve.h | 1 +
drivers/net/ethernet/google/gve/gve_main.c | 5 ++++-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/google/gve/gve.h b/drivers/net/ethernet/google/gve/gve.h
index 822bdaff66f6..b0a371037d21 100644
--- a/drivers/net/ethernet/google/gve/gve.h
+++ b/drivers/net/ethernet/google/gve/gve.h
@@ -441,6 +441,7 @@ struct gve_notify_block {
struct gve_priv *priv;
struct gve_tx_ring *tx; /* tx rings on this block */
struct gve_rx_ring *rx; /* rx rings on this block */
+ u32 irq;
} ____cacheline_aligned;
/* Tracks allowed and current queue settings */
diff --git a/drivers/net/ethernet/google/gve/gve_main.c b/drivers/net/ethernet/google/gve/gve_main.c
index a8fb51e77fea..d8cbc9ca1700 100644
--- a/drivers/net/ethernet/google/gve/gve_main.c
+++ b/drivers/net/ethernet/google/gve/gve_main.c
@@ -339,9 +339,10 @@ static int gve_alloc_notify_blocks(struct gve_priv *priv)
snprintf(block->name, sizeof(block->name), "%s-ntfy-block.%d",
name, i);
block->priv = priv;
+ block->irq = priv->msix_vectors[msix_idx].vector;
err = request_irq(priv->msix_vectors[msix_idx].vector,
gve_is_gqi(priv) ? gve_intr : gve_intr_dqo,
- 0, block->name, block);
+ IRQF_NO_AUTOEN, block->name, block);
if (err) {
dev_err(&priv->pdev->dev,
"Failed to receive msix vector %d\n", i);
@@ -502,6 +503,7 @@ static void gve_add_napi(struct gve_priv *priv, int ntfy_idx,
netif_napi_add(priv->dev, &block->napi, gve_poll,
NAPI_POLL_WEIGHT);
+ enable_irq(block->irq);
}
static void gve_remove_napi(struct gve_priv *priv, int ntfy_idx)
@@ -509,6 +511,7 @@ static void gve_remove_napi(struct gve_priv *priv, int ntfy_idx)
struct gve_notify_block *block = &priv->ntfy_blocks[ntfy_idx];
netif_napi_del(&block->napi);
+ disable_irq(block->irq);
}
static int gve_register_qpls(struct gve_priv *priv)
--
2.53.0.273.g2a3d683680-goog
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH 6.1.y] gve: defer interrupt enabling until NAPI registration
2026-02-13 21:16 [PATCH 5.10.y] gve: defer interrupt enabling until NAPI registration Joshua Washington
2026-02-13 21:17 ` [PATCH 5.15.y] " Joshua Washington
@ 2026-02-13 21:17 ` Joshua Washington
2026-02-13 21:17 ` [PATCH 6.6.y] " Joshua Washington
2 siblings, 0 replies; 8+ messages in thread
From: Joshua Washington @ 2026-02-13 21:17 UTC (permalink / raw)
To: stable
Cc: Ankit Garg, Jordan Rhee, Harshitha Ramamurthy, Paolo Abeni,
Joshua Washington
From: Ankit Garg <nktgrg@google.com>
[ Upstream commit 3d970eda003441f66551a91fda16478ac0711617 ]
Currently, interrupts are automatically enabled immediately upon
request. This allows interrupt to fire before the associated NAPI
context is fully initialized and cause failures like below:
[ 0.946369] Call Trace:
[ 0.946369] <IRQ>
[ 0.946369] __napi_poll+0x2a/0x1e0
[ 0.946369] net_rx_action+0x2f9/0x3f0
[ 0.946369] handle_softirqs+0xd6/0x2c0
[ 0.946369] ? handle_edge_irq+0xc1/0x1b0
[ 0.946369] __irq_exit_rcu+0xc3/0xe0
[ 0.946369] common_interrupt+0x81/0xa0
[ 0.946369] </IRQ>
[ 0.946369] <TASK>
[ 0.946369] asm_common_interrupt+0x22/0x40
[ 0.946369] RIP: 0010:pv_native_safe_halt+0xb/0x10
Use the `IRQF_NO_AUTOEN` flag when requesting interrupts to prevent auto
enablement and explicitly enable the interrupt in NAPI initialization
path (and disable it during NAPI teardown).
This ensures that interrupt lifecycle is strictly coupled with
readiness of NAPI context.
Cc: stable@vger.kernel.org
Fixes: 893ce44df565 ("gve: Add basic driver framework for Compute Engine Virtual NIC")
Signed-off-by: Ankit Garg <nktgrg@google.com>
Reviewed-by: Jordan Rhee <jordanrhee@google.com>
Signed-off-by: Harshitha Ramamurthy <hramamurthy@google.com>
Link: https://patch.msgid.link/20251219102945.2193617-1-hramamurthy@google.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Joshua Washington <joshwash@google.com>
---
Note: This patch has been modified form the original to re-introduce the
irq member to struct gve_notify_block, which was introuduced in commit
9a5e0776d11f ("gve: Avoid rescheduling napi if on wrong cpu").
---
drivers/net/ethernet/google/gve/gve.h | 1 +
drivers/net/ethernet/google/gve/gve_main.c | 5 ++++-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/google/gve/gve.h b/drivers/net/ethernet/google/gve/gve.h
index 458149a77ebe..c5e1312b9283 100644
--- a/drivers/net/ethernet/google/gve/gve.h
+++ b/drivers/net/ethernet/google/gve/gve.h
@@ -450,6 +450,7 @@ struct gve_notify_block {
struct gve_priv *priv;
struct gve_tx_ring *tx; /* tx rings on this block */
struct gve_rx_ring *rx; /* rx rings on this block */
+ u32 irq;
};
/* Tracks allowed and current queue settings */
diff --git a/drivers/net/ethernet/google/gve/gve_main.c b/drivers/net/ethernet/google/gve/gve_main.c
index 963c76e4aa5d..209e9526a6fd 100644
--- a/drivers/net/ethernet/google/gve/gve_main.c
+++ b/drivers/net/ethernet/google/gve/gve_main.c
@@ -353,9 +353,10 @@ static int gve_alloc_notify_blocks(struct gve_priv *priv)
snprintf(block->name, sizeof(block->name), "%s-ntfy-block.%d",
name, i);
block->priv = priv;
+ block->irq = priv->msix_vectors[msix_idx].vector;
err = request_irq(priv->msix_vectors[msix_idx].vector,
gve_is_gqi(priv) ? gve_intr : gve_intr_dqo,
- 0, block->name, block);
+ IRQF_NO_AUTOEN, block->name, block);
if (err) {
dev_err(&priv->pdev->dev,
"Failed to receive msix vector %d\n", i);
@@ -521,6 +522,7 @@ static void gve_add_napi(struct gve_priv *priv, int ntfy_idx,
struct gve_notify_block *block = &priv->ntfy_blocks[ntfy_idx];
netif_napi_add(priv->dev, &block->napi, gve_poll);
+ enable_irq(block->irq);
}
static void gve_remove_napi(struct gve_priv *priv, int ntfy_idx)
@@ -528,6 +530,7 @@ static void gve_remove_napi(struct gve_priv *priv, int ntfy_idx)
struct gve_notify_block *block = &priv->ntfy_blocks[ntfy_idx];
netif_napi_del(&block->napi);
+ disable_irq(block->irq);
}
static int gve_register_qpls(struct gve_priv *priv)
--
2.53.0.273.g2a3d683680-goog
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH 6.6.y] gve: defer interrupt enabling until NAPI registration
2026-02-13 21:16 [PATCH 5.10.y] gve: defer interrupt enabling until NAPI registration Joshua Washington
2026-02-13 21:17 ` [PATCH 5.15.y] " Joshua Washington
2026-02-13 21:17 ` [PATCH 6.1.y] " Joshua Washington
@ 2026-02-13 21:17 ` Joshua Washington
2026-02-16 9:58 ` Greg KH
2 siblings, 1 reply; 8+ messages in thread
From: Joshua Washington @ 2026-02-13 21:17 UTC (permalink / raw)
To: stable
Cc: Ankit Garg, Jordan Rhee, Harshitha Ramamurthy, Paolo Abeni,
Joshua Washington
From: Ankit Garg <nktgrg@google.com>
[ Upstream commit 3d970eda003441f66551a91fda16478ac0711617 ]
Currently, interrupts are automatically enabled immediately upon
request. This allows interrupt to fire before the associated NAPI
context is fully initialized and cause failures like below:
[ 0.946369] Call Trace:
[ 0.946369] <IRQ>
[ 0.946369] __napi_poll+0x2a/0x1e0
[ 0.946369] net_rx_action+0x2f9/0x3f0
[ 0.946369] handle_softirqs+0xd6/0x2c0
[ 0.946369] ? handle_edge_irq+0xc1/0x1b0
[ 0.946369] __irq_exit_rcu+0xc3/0xe0
[ 0.946369] common_interrupt+0x81/0xa0
[ 0.946369] </IRQ>
[ 0.946369] <TASK>
[ 0.946369] asm_common_interrupt+0x22/0x40
[ 0.946369] RIP: 0010:pv_native_safe_halt+0xb/0x10
Use the `IRQF_NO_AUTOEN` flag when requesting interrupts to prevent auto
enablement and explicitly enable the interrupt in NAPI initialization
path (and disable it during NAPI teardown).
This ensures that interrupt lifecycle is strictly coupled with
readiness of NAPI context.
Cc: stable@vger.kernel.org
Fixes: 893ce44df565 ("gve: Add basic driver framework for Compute Engine Virtual NIC")
Signed-off-by: Ankit Garg <nktgrg@google.com>
Reviewed-by: Jordan Rhee <jordanrhee@google.com>
Signed-off-by: Harshitha Ramamurthy <hramamurthy@google.com>
Link: https://patch.msgid.link/20251219102945.2193617-1-hramamurthy@google.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Joshua Washington <joshwash@google.com>
---
Note: This patch has been modified form the original to re-introduce the
irq member to struct gve_notify_block, which was introuduced in commit
9a5e0776d11f ("gve: Avoid rescheduling napi if on wrong cpu").
---
drivers/net/ethernet/google/gve/gve.h | 1 +
drivers/net/ethernet/google/gve/gve_main.c | 5 ++++-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/google/gve/gve.h b/drivers/net/ethernet/google/gve/gve.h
index d59e28c86775..f6e43cf96a46 100644
--- a/drivers/net/ethernet/google/gve/gve.h
+++ b/drivers/net/ethernet/google/gve/gve.h
@@ -585,6 +585,7 @@ struct gve_notify_block {
struct gve_priv *priv;
struct gve_tx_ring *tx; /* tx rings on this block */
struct gve_rx_ring *rx; /* rx rings on this block */
+ u32 irq;
};
/* Tracks allowed and current queue settings */
diff --git a/drivers/net/ethernet/google/gve/gve_main.c b/drivers/net/ethernet/google/gve/gve_main.c
index b2c648fe3875..08f444ee10c7 100644
--- a/drivers/net/ethernet/google/gve/gve_main.c
+++ b/drivers/net/ethernet/google/gve/gve_main.c
@@ -407,9 +407,10 @@ static int gve_alloc_notify_blocks(struct gve_priv *priv)
snprintf(block->name, sizeof(block->name), "gve-ntfy-blk%d@pci:%s",
i, pci_name(priv->pdev));
block->priv = priv;
+ block->irq = priv->msix_vectors[msix_idx].vector;
err = request_irq(priv->msix_vectors[msix_idx].vector,
gve_is_gqi(priv) ? gve_intr : gve_intr_dqo,
- 0, block->name, block);
+ IRQF_NO_AUTOEN, block->name, block);
if (err) {
dev_err(&priv->pdev->dev,
"Failed to receive msix vector %d\n", i);
@@ -575,6 +576,7 @@ static void gve_add_napi(struct gve_priv *priv, int ntfy_idx,
struct gve_notify_block *block = &priv->ntfy_blocks[ntfy_idx];
netif_napi_add(priv->dev, &block->napi, gve_poll);
+ enable_irq(block->irq);
}
static void gve_remove_napi(struct gve_priv *priv, int ntfy_idx)
@@ -582,6 +584,7 @@ static void gve_remove_napi(struct gve_priv *priv, int ntfy_idx)
struct gve_notify_block *block = &priv->ntfy_blocks[ntfy_idx];
netif_napi_del(&block->napi);
+ disable_irq(block->irq);
}
static int gve_register_xdp_qpls(struct gve_priv *priv)
--
2.53.0.273.g2a3d683680-goog
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH 6.6.y] gve: defer interrupt enabling until NAPI registration
2026-02-13 21:17 ` [PATCH 6.6.y] " Joshua Washington
@ 2026-02-16 9:58 ` Greg KH
2026-02-16 18:41 ` Joshua Washington
0 siblings, 1 reply; 8+ messages in thread
From: Greg KH @ 2026-02-16 9:58 UTC (permalink / raw)
To: Joshua Washington
Cc: stable, Ankit Garg, Jordan Rhee, Harshitha Ramamurthy,
Paolo Abeni
On Fri, Feb 13, 2026 at 01:17:02PM -0800, Joshua Washington wrote:
> From: Ankit Garg <nktgrg@google.com>
>
> [ Upstream commit 3d970eda003441f66551a91fda16478ac0711617 ]
>
> Currently, interrupts are automatically enabled immediately upon
> request. This allows interrupt to fire before the associated NAPI
> context is fully initialized and cause failures like below:
>
> [ 0.946369] Call Trace:
> [ 0.946369] <IRQ>
> [ 0.946369] __napi_poll+0x2a/0x1e0
> [ 0.946369] net_rx_action+0x2f9/0x3f0
> [ 0.946369] handle_softirqs+0xd6/0x2c0
> [ 0.946369] ? handle_edge_irq+0xc1/0x1b0
> [ 0.946369] __irq_exit_rcu+0xc3/0xe0
> [ 0.946369] common_interrupt+0x81/0xa0
> [ 0.946369] </IRQ>
> [ 0.946369] <TASK>
> [ 0.946369] asm_common_interrupt+0x22/0x40
> [ 0.946369] RIP: 0010:pv_native_safe_halt+0xb/0x10
>
> Use the `IRQF_NO_AUTOEN` flag when requesting interrupts to prevent auto
> enablement and explicitly enable the interrupt in NAPI initialization
> path (and disable it during NAPI teardown).
>
> This ensures that interrupt lifecycle is strictly coupled with
> readiness of NAPI context.
>
> Cc: stable@vger.kernel.org
> Fixes: 893ce44df565 ("gve: Add basic driver framework for Compute Engine Virtual NIC")
Why did you change the Fixes line here? Did the original commit lie
about it? If so, that's fine, but this is really going to cause tools a
mess to keep track of...
> Signed-off-by: Ankit Garg <nktgrg@google.com>
> Reviewed-by: Jordan Rhee <jordanrhee@google.com>
> Signed-off-by: Harshitha Ramamurthy <hramamurthy@google.com>
> Link: https://patch.msgid.link/20251219102945.2193617-1-hramamurthy@google.com
> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> Signed-off-by: Joshua Washington <joshwash@google.com>
> ---
>
> Note: This patch has been modified form the original to re-introduce the
> irq member to struct gve_notify_block, which was introuduced in commit
> 9a5e0776d11f ("gve: Avoid rescheduling napi if on wrong cpu").
Can you put this in a "comment" above your signed off like:
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
[ modified to re-introduce the irq member to struct gve_notify_block,
which was introuduced in commit 9a5e0776d11f ("gve: Avoid rescheduling
napi if on wrong cpu"). ]
Signed-off-by: Joshua Washington <joshwash@google.com>
Also, it's "from", not "form" :)
Same for all of the other backports here, can you fix them all up
please and send a v2?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH 6.6.y] gve: defer interrupt enabling until NAPI registration
2026-02-16 9:58 ` Greg KH
@ 2026-02-16 18:41 ` Joshua Washington
2026-02-16 19:00 ` Joshua Washington
0 siblings, 1 reply; 8+ messages in thread
From: Joshua Washington @ 2026-02-16 18:41 UTC (permalink / raw)
To: Greg KH; +Cc: stable, Ankit Garg, Jordan Rhee, Harshitha Ramamurthy,
Paolo Abeni
Hi,
The original fixes tag was unfortunately attached to a commit that was
introduced as part of the 6.9 kernel. This mistake was made because
there was a significant driver refactor made to resource allocation at
around that time:
https://lore.kernel.org/netdev/20240122182632.1102721-1-shailend@google.com/.
I did not realize until later that the logic being fixed should have
been backported much further back, to the initial commit of the
driver.
I will send a V2 with the suggested changes, thanks.
Josh
On Mon, Feb 16, 2026 at 1:58 AM Greg KH <gregkh@linuxfoundation.org> wrote:
>
> On Fri, Feb 13, 2026 at 01:17:02PM -0800, Joshua Washington wrote:
> > From: Ankit Garg <nktgrg@google.com>
> >
> > [ Upstream commit 3d970eda003441f66551a91fda16478ac0711617 ]
> >
> > Currently, interrupts are automatically enabled immediately upon
> > request. This allows interrupt to fire before the associated NAPI
> > context is fully initialized and cause failures like below:
> >
> > [ 0.946369] Call Trace:
> > [ 0.946369] <IRQ>
> > [ 0.946369] __napi_poll+0x2a/0x1e0
> > [ 0.946369] net_rx_action+0x2f9/0x3f0
> > [ 0.946369] handle_softirqs+0xd6/0x2c0
> > [ 0.946369] ? handle_edge_irq+0xc1/0x1b0
> > [ 0.946369] __irq_exit_rcu+0xc3/0xe0
> > [ 0.946369] common_interrupt+0x81/0xa0
> > [ 0.946369] </IRQ>
> > [ 0.946369] <TASK>
> > [ 0.946369] asm_common_interrupt+0x22/0x40
> > [ 0.946369] RIP: 0010:pv_native_safe_halt+0xb/0x10
> >
> > Use the `IRQF_NO_AUTOEN` flag when requesting interrupts to prevent auto
> > enablement and explicitly enable the interrupt in NAPI initialization
> > path (and disable it during NAPI teardown).
> >
> > This ensures that interrupt lifecycle is strictly coupled with
> > readiness of NAPI context.
> >
> > Cc: stable@vger.kernel.org
> > Fixes: 893ce44df565 ("gve: Add basic driver framework for Compute Engine Virtual NIC")
>
> Why did you change the Fixes line here? Did the original commit lie
> about it? If so, that's fine, but this is really going to cause tools a
> mess to keep track of...
>
>
> > Signed-off-by: Ankit Garg <nktgrg@google.com>
> > Reviewed-by: Jordan Rhee <jordanrhee@google.com>
> > Signed-off-by: Harshitha Ramamurthy <hramamurthy@google.com>
> > Link: https://patch.msgid.link/20251219102945.2193617-1-hramamurthy@google.com
> > Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> > Signed-off-by: Joshua Washington <joshwash@google.com>
> > ---
> >
> > Note: This patch has been modified form the original to re-introduce the
> > irq member to struct gve_notify_block, which was introuduced in commit
> > 9a5e0776d11f ("gve: Avoid rescheduling napi if on wrong cpu").
>
> Can you put this in a "comment" above your signed off like:
>
> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> [ modified to re-introduce the irq member to struct gve_notify_block,
> which was introuduced in commit 9a5e0776d11f ("gve: Avoid rescheduling
> napi if on wrong cpu"). ]
> Signed-off-by: Joshua Washington <joshwash@google.com>
>
> Also, it's "from", not "form" :)
>
> Same for all of the other backports here, can you fix them all up
> please and send a v2?
>
> thanks,
>
> greg k-h
--
Joshua Washington | Software Engineer | joshwash@google.com | (414) 366-4423
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH 6.6.y] gve: defer interrupt enabling until NAPI registration
2026-02-16 18:41 ` Joshua Washington
@ 2026-02-16 19:00 ` Joshua Washington
2026-02-17 11:01 ` Greg KH
0 siblings, 1 reply; 8+ messages in thread
From: Joshua Washington @ 2026-02-16 19:00 UTC (permalink / raw)
To: Greg KH; +Cc: stable, Ankit Garg, Jordan Rhee, Harshitha Ramamurthy,
Paolo Abeni
Hello,
I was also wondering if the way I'd sent the patches was okay, with
major.minory.y patches for each of the stable kernels, or if I should
send them differently in V2. Lore seems to have grouped all 4 patches
into a series, which seemed a bit odd to me, but was probably related
to the fact that I'd only used a single send-email command.
Thanks,
Josh
On Mon, Feb 16, 2026 at 10:41 AM Joshua Washington <joshwash@google.com> wrote:
>
> Hi,
>
> The original fixes tag was unfortunately attached to a commit that was
> introduced as part of the 6.9 kernel. This mistake was made because
> there was a significant driver refactor made to resource allocation at
> around that time:
> https://lore.kernel.org/netdev/20240122182632.1102721-1-shailend@google.com/.
> I did not realize until later that the logic being fixed should have
> been backported much further back, to the initial commit of the
> driver.
>
> I will send a V2 with the suggested changes, thanks.
>
> Josh
>
> On Mon, Feb 16, 2026 at 1:58 AM Greg KH <gregkh@linuxfoundation.org> wrote:
> >
> > On Fri, Feb 13, 2026 at 01:17:02PM -0800, Joshua Washington wrote:
> > > From: Ankit Garg <nktgrg@google.com>
> > >
> > > [ Upstream commit 3d970eda003441f66551a91fda16478ac0711617 ]
> > >
> > > Currently, interrupts are automatically enabled immediately upon
> > > request. This allows interrupt to fire before the associated NAPI
> > > context is fully initialized and cause failures like below:
> > >
> > > [ 0.946369] Call Trace:
> > > [ 0.946369] <IRQ>
> > > [ 0.946369] __napi_poll+0x2a/0x1e0
> > > [ 0.946369] net_rx_action+0x2f9/0x3f0
> > > [ 0.946369] handle_softirqs+0xd6/0x2c0
> > > [ 0.946369] ? handle_edge_irq+0xc1/0x1b0
> > > [ 0.946369] __irq_exit_rcu+0xc3/0xe0
> > > [ 0.946369] common_interrupt+0x81/0xa0
> > > [ 0.946369] </IRQ>
> > > [ 0.946369] <TASK>
> > > [ 0.946369] asm_common_interrupt+0x22/0x40
> > > [ 0.946369] RIP: 0010:pv_native_safe_halt+0xb/0x10
> > >
> > > Use the `IRQF_NO_AUTOEN` flag when requesting interrupts to prevent auto
> > > enablement and explicitly enable the interrupt in NAPI initialization
> > > path (and disable it during NAPI teardown).
> > >
> > > This ensures that interrupt lifecycle is strictly coupled with
> > > readiness of NAPI context.
> > >
> > > Cc: stable@vger.kernel.org
> > > Fixes: 893ce44df565 ("gve: Add basic driver framework for Compute Engine Virtual NIC")
> >
> > Why did you change the Fixes line here? Did the original commit lie
> > about it? If so, that's fine, but this is really going to cause tools a
> > mess to keep track of...
> >
> >
> > > Signed-off-by: Ankit Garg <nktgrg@google.com>
> > > Reviewed-by: Jordan Rhee <jordanrhee@google.com>
> > > Signed-off-by: Harshitha Ramamurthy <hramamurthy@google.com>
> > > Link: https://patch.msgid.link/20251219102945.2193617-1-hramamurthy@google.com
> > > Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> > > Signed-off-by: Joshua Washington <joshwash@google.com>
> > > ---
> > >
> > > Note: This patch has been modified form the original to re-introduce the
> > > irq member to struct gve_notify_block, which was introuduced in commit
> > > 9a5e0776d11f ("gve: Avoid rescheduling napi if on wrong cpu").
> >
> > Can you put this in a "comment" above your signed off like:
> >
> > Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> > [ modified to re-introduce the irq member to struct gve_notify_block,
> > which was introuduced in commit 9a5e0776d11f ("gve: Avoid rescheduling
> > napi if on wrong cpu"). ]
> > Signed-off-by: Joshua Washington <joshwash@google.com>
> >
> > Also, it's "from", not "form" :)
> >
> > Same for all of the other backports here, can you fix them all up
> > please and send a v2?
> >
> > thanks,
> >
> > greg k-h
>
>
>
> --
>
> Joshua Washington | Software Engineer | joshwash@google.com | (414) 366-4423
--
Joshua Washington | Software Engineer | joshwash@google.com | (414) 366-4423
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH 6.6.y] gve: defer interrupt enabling until NAPI registration
2026-02-16 19:00 ` Joshua Washington
@ 2026-02-17 11:01 ` Greg KH
0 siblings, 0 replies; 8+ messages in thread
From: Greg KH @ 2026-02-17 11:01 UTC (permalink / raw)
To: Joshua Washington
Cc: stable, Ankit Garg, Jordan Rhee, Harshitha Ramamurthy,
Paolo Abeni
On Mon, Feb 16, 2026 at 11:00:01AM -0800, Joshua Washington wrote:
> Hello,
>
> I was also wondering if the way I'd sent the patches was okay, with
> major.minory.y patches for each of the stable kernels, or if I should
> send them differently in V2. Lore seems to have grouped all 4 patches
> into a series, which seemed a bit odd to me, but was probably related
> to the fact that I'd only used a single send-email command.
Either is fine, that's the least of our worries when taking stable
backports :)
thanks,
greg k-h
^ permalink raw reply [flat|nested] 8+ messages in thread