Skip to content

Commit 9543f6e

Browse files
ebiggersbp3tk0v
authored andcommitted
x86/cpufeatures: Fix dependencies for GFNI, VAES, and VPCLMULQDQ
Fix cpuid_deps[] to list the correct dependencies for GFNI, VAES, and VPCLMULQDQ. These features don't depend on AVX512, and there exist CPUs that support these features but not AVX512. GFNI actually doesn't even depend on AVX. This prevents GFNI from being unnecessarily disabled if AVX is disabled to mitigate the GDS vulnerability. This also prevents all three features from being unnecessarily disabled if AVX512VL (or its dependency AVX512F) were to be disabled, but it looks like there isn't any case where this happens anyway. Fixes: c128dbf ("x86/cpufeatures: Enable new SSE/AVX/AVX512 CPU features") Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Acked-by: Dave Hansen <dave.hansen@linux.intel.com> Link: https://lore.kernel.org/r/20240417060434.47101-1-ebiggers@kernel.org
1 parent a4b37f5 commit 9543f6e

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

arch/x86/kernel/cpu/cpuid-deps.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,10 @@ static const struct cpuid_dep cpuid_deps[] = {
4444
{ X86_FEATURE_F16C, X86_FEATURE_XMM2, },
4545
{ X86_FEATURE_AES, X86_FEATURE_XMM2 },
4646
{ X86_FEATURE_SHA_NI, X86_FEATURE_XMM2 },
47+
{ X86_FEATURE_GFNI, X86_FEATURE_XMM2 },
4748
{ X86_FEATURE_FMA, X86_FEATURE_AVX },
49+
{ X86_FEATURE_VAES, X86_FEATURE_AVX },
50+
{ X86_FEATURE_VPCLMULQDQ, X86_FEATURE_AVX },
4851
{ X86_FEATURE_AVX2, X86_FEATURE_AVX, },
4952
{ X86_FEATURE_AVX512F, X86_FEATURE_AVX, },
5053
{ X86_FEATURE_AVX512IFMA, X86_FEATURE_AVX512F },
@@ -56,9 +59,6 @@ static const struct cpuid_dep cpuid_deps[] = {
5659
{ X86_FEATURE_AVX512VL, X86_FEATURE_AVX512F },
5760
{ X86_FEATURE_AVX512VBMI, X86_FEATURE_AVX512F },
5861
{ X86_FEATURE_AVX512_VBMI2, X86_FEATURE_AVX512VL },
59-
{ X86_FEATURE_GFNI, X86_FEATURE_AVX512VL },
60-
{ X86_FEATURE_VAES, X86_FEATURE_AVX512VL },
61-
{ X86_FEATURE_VPCLMULQDQ, X86_FEATURE_AVX512VL },
6262
{ X86_FEATURE_AVX512_VNNI, X86_FEATURE_AVX512VL },
6363
{ X86_FEATURE_AVX512_BITALG, X86_FEATURE_AVX512VL },
6464
{ X86_FEATURE_AVX512_4VNNIW, X86_FEATURE_AVX512F },

0 commit comments

Comments
 (0)