FAILED: patch "[PATCH] netfilter: nft_set_pipapo_avx2: add missing vzeroupper" failed to apply to 5.15-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y
git checkout FETCH_HEAD
git cherry-pick -x 55dd20f0f4b1be5c9c8a0275d8d763c86563eac2
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2026083141-pasty-applied-4229@gregkh' --subject-prefix 'PATCH 5.15.y' 'HEAD^..'
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 55dd20f0f4b1be5c9c8a0275d8d763c86563eac2 Mon Sep 17 00:00:00 2001
From: Eric Biggers <[email protected]>
Date: Sat, 15 Aug 2026 13:57:50 -0700
Subject: [PATCH] netfilter: nft_set_pipapo_avx2: add missing vzeroupper
Since pipapo_get_avx2() uses YMM registers, execute vzeroupper before returning from it. This is needed to avoid degrading the performance of any later SSE code that may happen to be executed.
net/netfilter/nft_set_pipapo_avx2.c +8 -9
@@ -1134,6 +1134,7 @@ struct nft_pipapo_elem *pipapo_get_avx2(const struct nft_pipapo_match *m,struct nft_pipapo_scratch *scratch;const struct nft_pipapo_field *f;unsigned long *res, *fill, *map; +struct nft_pipapo_elem *e;bool map_index;int ret =0 ;int i;
@@ -1207,14 +1208,11 @@ struct nft_pipapo_elem *pipapo_get_avx2(const struct nft_pipapo_match *m, next_match:if (ret <0 ) { scratch->map_index = map_index; -kernel_fpu_end (); -__local_unlock_nested_bh (&scratch->bh_lock); -return NULL ; + e =NULL ; + goto out; }if (last) { -struct nft_pipapo_elem *e; - e = f->mt[ret].e;if (unlikely (__nft_set_elem_expired (&e->ext, tstamp) || !nft_set_elem_active (&e->ext, genmask))) {
@@ -1224,9 +1222,7 @@ struct nft_pipapo_elem *pipapo_get_avx2(const struct nft_pipapo_match *m, } scratch->map_index = map_index; -kernel_fpu_end (); -__local_unlock_nested_bh (&scratch->bh_lock); -return e; + goto out; } map_index = !map_index;
@@ -1234,9 +1230,12 @@ struct nft_pipapo_elem *pipapo_get_avx2(const struct nft_pipapo_match *m, data +=NFT_PIPAPO_GROUPS_PADDED_SIZE (f); } + e =NULL ; +out: + asmvolatile ("vzeroupper" );kernel_fpu_end ();__local_unlock_nested_bh (&scratch->bh_lock); -return NULL ; +return e; }/**