From: Sasha Levin Date: Thu, 16 Apr 2026 13:31:36 +0000 (-0400) Subject: drop 1 patch from queue-5.15 and queue-5.10 based on RC review feedback X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;ds=inline;p=thirdparty%2Fkernel%2Fstable-queue.git drop 1 patch from queue-5.15 and queue-5.10 based on RC review feedback Dropped patches: - "gve: defer interrupt enabling until NAPI registration" Queues: 5.10, 5.15 Reason: backport ordering error — disable_irq() placed after netif_napi_del() instead of before, reversing the upstream ordering and undermining the patch's purpose Report: https://lore.kernel.org/stable/9c5431bb22e2c1470f608a60f872c441c21550ff.camel@decadent.org.uk/ --- diff --git a/queue-5.10/gve-defer-interrupt-enabling-until-napi-registration.patch b/queue-5.10/gve-defer-interrupt-enabling-until-napi-registration.patch deleted file mode 100644 index 2a59032234..0000000000 --- a/queue-5.10/gve-defer-interrupt-enabling-until-napi-registration.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 3d970eda003441f66551a91fda16478ac0711617 Mon Sep 17 00:00:00 2001 -From: Ankit Garg -Date: Fri, 19 Dec 2025 10:29:45 +0000 -Subject: gve: defer interrupt enabling until NAPI registration - -From: Ankit Garg - -commit 3d970eda003441f66551a91fda16478ac0711617 upstream. - -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] -[ 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] -[ 0.946369] -[ 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: 1dfc2e46117e ("gve: Refactor napi add and remove functions") -Signed-off-by: Ankit Garg -Reviewed-by: Jordan Rhee -Reviewed-by: Joshua Washington -Signed-off-by: Harshitha Ramamurthy -Link: https://patch.msgid.link/20251219102945.2193617-1-hramamurthy@google.com -Signed-off-by: Paolo Abeni -[ 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 -Signed-off-by: Greg Kroah-Hartman ---- - drivers/net/ethernet/google/gve/gve.h | 1 + - drivers/net/ethernet/google/gve/gve_main.c | 5 ++++- - 2 files changed, 5 insertions(+), 1 deletion(-) - ---- a/drivers/net/ethernet/google/gve/gve.h -+++ b/drivers/net/ethernet/google/gve/gve.h -@@ -165,6 +165,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 */ ---- a/drivers/net/ethernet/google/gve/gve_main.c -+++ b/drivers/net/ethernet/google/gve/gve_main.c -@@ -277,8 +277,9 @@ static int gve_alloc_notify_blocks(struc - 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_intr, 0, block->name, block); -+ gve_intr, IRQF_NO_AUTOEN, block->name, block); - if (err) { - dev_err(&priv->pdev->dev, - "Failed to receive msix vector %d\n", i); -@@ -413,6 +414,7 @@ static void gve_add_napi(struct gve_priv - - netif_napi_add(priv->dev, &block->napi, gve_napi_poll, - NAPI_POLL_WEIGHT); -+ enable_irq(block->irq); - } - - static void gve_remove_napi(struct gve_priv *priv, int ntfy_idx) -@@ -420,6 +422,7 @@ static void gve_remove_napi(struct gve_p - 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) diff --git a/queue-5.10/series b/queue-5.10/series index 551a46b794..6badd55721 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -145,7 +145,6 @@ serial-8250-fix-tx-deadlock-when-using-dma.patch serial-8250-add-late-synchronize_irq-to-shutdown-to-handle-dw-uart-busy.patch drm-radeon-apply-state-adjust-rules-to-some-additional-hainan-vairants.patch net-handle-napi_schedule-calls-from-non-interrupt.patch -gve-defer-interrupt-enabling-until-napi-registration.patch drm-exynos-vidi-use-priv-vidi_dev-for-ctx-lookup-in-vidi_connection_ioctl.patch drm-exynos-vidi-fix-to-avoid-directly-dereferencing-user-pointer.patch drm-exynos-vidi-use-ctx-lock-to-protect-struct-vidi_context-member-variables-related-to-memory-alloc-free.patch diff --git a/queue-5.15/gve-defer-interrupt-enabling-until-napi-registration.patch b/queue-5.15/gve-defer-interrupt-enabling-until-napi-registration.patch deleted file mode 100644 index b119b590fe..0000000000 --- a/queue-5.15/gve-defer-interrupt-enabling-until-napi-registration.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 3d970eda003441f66551a91fda16478ac0711617 Mon Sep 17 00:00:00 2001 -From: Ankit Garg -Date: Fri, 19 Dec 2025 10:29:45 +0000 -Subject: gve: defer interrupt enabling until NAPI registration - -From: Ankit Garg - -commit 3d970eda003441f66551a91fda16478ac0711617 upstream. - -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] -[ 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] -[ 0.946369] -[ 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: 1dfc2e46117e ("gve: Refactor napi add and remove functions") -Signed-off-by: Ankit Garg -Reviewed-by: Jordan Rhee -Reviewed-by: Joshua Washington -Signed-off-by: Harshitha Ramamurthy -Link: https://patch.msgid.link/20251219102945.2193617-1-hramamurthy@google.com -Signed-off-by: Paolo Abeni -[ 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 -Signed-off-by: Greg Kroah-Hartman ---- - drivers/net/ethernet/google/gve/gve.h | 1 + - drivers/net/ethernet/google/gve/gve_main.c | 5 ++++- - 2 files changed, 5 insertions(+), 1 deletion(-) - ---- 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 */ ---- 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(struc - 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 - - 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_p - 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) diff --git a/queue-5.15/series b/queue-5.15/series index 0e63f9690d..fe8535e2ed 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -211,7 +211,6 @@ mm-rmap-fix-two-comments-related-to-huge_pmd_unshare.patch mm-hugetlb-fix-excessive-ipi-broadcasts-when-unsharing-pmd-tables-using-mmu_gather.patch net-stmmac-dwmac-loongson-set-clk_csr_i-to-100-150mhz.patch net-handle-napi_schedule-calls-from-non-interrupt.patch -gve-defer-interrupt-enabling-until-napi-registration.patch drm-exynos-vidi-use-priv-vidi_dev-for-ctx-lookup-in-vidi_connection_ioctl.patch drm-exynos-vidi-fix-to-avoid-directly-dereferencing-user-pointer.patch drm-exynos-vidi-use-ctx-lock-to-protect-struct-vidi_context-member-variables-related-to-memory-alloc-free.patch