Commit f742b90e authored by Brijesh Singh's avatar Brijesh Singh Committed by Borislav Petkov
Browse files

x86/mm: Extend cc_attr to include AMD SEV-SNP



The CC_ATTR_GUEST_SEV_SNP can be used by the guest to query whether the
SNP (Secure Nested Paging) feature is active.

Signed-off-by: default avatarBrijesh Singh <brijesh.singh@amd.com>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Link: https://lore.kernel.org/r/20220307213356.2797205-10-brijesh.singh@amd.com
parent bcce8290
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -57,6 +57,9 @@ static bool amd_cc_platform_has(enum cc_attr attr)
		return (sev_status & MSR_AMD64_SEV_ENABLED) &&
			!(sev_status & MSR_AMD64_SEV_ES_ENABLED);

	case CC_ATTR_GUEST_SEV_SNP:
		return sev_status & MSR_AMD64_SEV_SNP_ENABLED;

	default:
		return false;
	}
+2 −0
Original line number Diff line number Diff line
@@ -502,8 +502,10 @@
#define MSR_AMD64_SEV			0xc0010131
#define MSR_AMD64_SEV_ENABLED_BIT	0
#define MSR_AMD64_SEV_ES_ENABLED_BIT	1
#define MSR_AMD64_SEV_SNP_ENABLED_BIT	2
#define MSR_AMD64_SEV_ENABLED		BIT_ULL(MSR_AMD64_SEV_ENABLED_BIT)
#define MSR_AMD64_SEV_ES_ENABLED	BIT_ULL(MSR_AMD64_SEV_ES_ENABLED_BIT)
#define MSR_AMD64_SEV_SNP_ENABLED	BIT_ULL(MSR_AMD64_SEV_SNP_ENABLED_BIT)

#define MSR_AMD64_VIRT_SPEC_CTRL	0xc001011f

+4 −0
Original line number Diff line number Diff line
@@ -62,6 +62,10 @@ static void print_mem_encrypt_feature_info(void)
	if (cc_platform_has(CC_ATTR_GUEST_STATE_ENCRYPT))
		pr_cont(" SEV-ES");

	/* Secure Nested Paging */
	if (cc_platform_has(CC_ATTR_GUEST_SEV_SNP))
		pr_cont(" SEV-SNP");

	pr_cont("\n");
}

+8 −0
Original line number Diff line number Diff line
@@ -72,6 +72,14 @@ enum cc_attr {
	 * Examples include TDX guest & SEV.
	 */
	CC_ATTR_GUEST_UNROLL_STRING_IO,

	/**
	 * @CC_ATTR_SEV_SNP: Guest SNP is active.
	 *
	 * The platform/OS is running as a guest/virtual machine and actively
	 * using AMD SEV-SNP features.
	 */
	CC_ATTR_GUEST_SEV_SNP,
};

#ifdef CONFIG_ARCH_HAS_CC_PLATFORM