summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@kernel.org>2026-08-31 14:22:48 -0700
committerAndrew Morton <akpm@linux-foundation.org>2026-09-13 21:33:32 -0700
commit75cca347b238e471670c0814bef0687004803150 (patch)
tree8a2cd220ca94a605af64b516a26f752b062e0914 /lib
parent625feefac6463d7783aab3891152f9b28c978a1e (diff)
downloadlinux-next-75cca347b238e471670c0814bef0687004803150.tar.gz
linux-next-75cca347b238e471670c0814bef0687004803150.zip
xor: add missing vzeroupper to AVX code
Since the AVX optimized XOR code 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. Link: https://lore.kernel.org/20260831212248.213805-1-ebiggers@kernel.org Fixes: ea4d26ae24e5 ("raid5: add AVX optimized RAID5 checksumming") Signed-off-by: Eric Biggers <ebiggers@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Cc: Christoph Hellwig <hch@lst.de> Cc: <stable@vger.kernel.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/raid/xor/x86/xor-avx.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/raid/xor/x86/xor-avx.c b/lib/raid/xor/x86/xor-avx.c
index f7777d7aa269..95b21e7225e8 100644
--- a/lib/raid/xor/x86/xor-avx.c
+++ b/lib/raid/xor/x86/xor-avx.c
@@ -147,6 +147,7 @@ static void xor_gen_avx(void *dest, void **srcs, unsigned int src_cnt,
{
kernel_fpu_begin();
xor_gen_avx_inner(dest, srcs, src_cnt, bytes);
+ asm volatile("vzeroupper");
kernel_fpu_end();
}