]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
x86/sev: Require the RMPREAD instruction after Zen4
authorTom Lendacky <thomas.lendacky@amd.com>
Mon, 2 Dec 2024 20:50:48 +0000 (14:50 -0600)
committerBorislav Petkov (AMD) <bp@alien8.de>
Sat, 14 Dec 2024 09:55:28 +0000 (10:55 +0100)
Limit usage of the non-architectural RMP format to Zen3/Zen4 processors.
The RMPREAD instruction, with architectural defined output, is available
and should be used for RMP access beyond Zen4.

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Nikunj A Dadhania <nikunj@amd.com>
Reviewed-by: Neeraj Upadhyay <Neeraj.Upadhyay@amd.com>
Reviewed-by: Ashish Kalra <ashish.kalra@amd.com>
Link: https://lore.kernel.org/r/5be0093e091778a151266ea853352f62f838eb99.1733172653.git.thomas.lendacky@amd.com
arch/x86/kernel/cpu/amd.c

index 79d2e17f6582e922630f9b5b54c025543d73d576..b9592c60166e567f8c209314873aa60f3dcbe4de 100644 (file)
@@ -355,10 +355,15 @@ static void bsp_determine_snp(struct cpuinfo_x86 *c)
                /*
                 * RMP table entry format is not architectural and is defined by the
                 * per-processor PPR. Restrict SNP support on the known CPU models
-                * for which the RMP table entry format is currently defined for.
+                * for which the RMP table entry format is currently defined or for
+                * processors which support the architecturally defined RMPREAD
+                * instruction.
                 */
                if (!cpu_has(c, X86_FEATURE_HYPERVISOR) &&
-                   c->x86 >= 0x19 && snp_probe_rmptable_info()) {
+                   (cpu_feature_enabled(X86_FEATURE_ZEN3) ||
+                    cpu_feature_enabled(X86_FEATURE_ZEN4) ||
+                    cpu_feature_enabled(X86_FEATURE_RMPREAD)) &&
+                   snp_probe_rmptable_info()) {
                        cc_platform_set(CC_ATTR_HOST_SEV_SNP);
                } else {
                        setup_clear_cpu_cap(X86_FEATURE_SEV_SNP);