diff options
| author | Eric Biggers <ebiggers@kernel.org> | 2026-08-31 14:22:48 -0700 |
|---|---|---|
| committer | Andrew Morton <akpm@linux-foundation.org> | 2026-09-13 21:33:32 -0700 |
| commit | 75cca347b238e471670c0814bef0687004803150 (patch) | |
| tree | 8a2cd220ca94a605af64b516a26f752b062e0914 /lib | |
| parent | 625feefac6463d7783aab3891152f9b28c978a1e (diff) | |
| download | linux-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.c | 1 |
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(); } |
