Commit 4972808d authored by Tom Lendacky's avatar Tom Lendacky Committed by Borislav Petkov (AMD)
Browse files

x86/sev: Require the RMPREAD instruction after Zen4



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: default avatarTom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: default avatarNikunj A Dadhania <nikunj@amd.com>
Reviewed-by: default avatarNeeraj Upadhyay <Neeraj.Upadhyay@amd.com>
Reviewed-by: default avatarAshish Kalra <ashish.kalra@amd.com>
Link: https://lore.kernel.org/r/5be0093e091778a151266ea853352f62f838eb99.1733172653.git.thomas.lendacky@amd.com
parent 0cbc0258
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -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);