From: Thomas Gleixner Date: Thu, 30 Mar 2023 12:07:05 +0000 (+0200) Subject: Merge branch 'x86/cc' into x86/sev X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=87efe384109f7938c94e74b1ce9c613136f50fd9;p=linux.git Merge branch 'x86/cc' into x86/sev Pick up the cc_vendor changes. --- 87efe384109f7938c94e74b1ce9c613136f50fd9 diff --cc arch/x86/coco/core.c index f4f0625691fd4,684f0a910475c..73f83233d25df --- a/arch/x86/coco/core.c +++ b/arch/x86/coco/core.c @@@ -97,9 -76,14 +97,9 @@@ static bool amd_cc_platform_has(enum cc #endif } -static bool hyperv_cc_platform_has(enum cc_attr attr) -{ - return attr == CC_ATTR_GUEST_MEM_ENCRYPT; -} - bool cc_platform_has(enum cc_attr attr) { - switch (vendor) { + switch (cc_vendor) { case CC_VENDOR_AMD: return amd_cc_platform_has(attr); case CC_VENDOR_INTEL: @@@ -117,14 -103,11 +117,14 @@@ u64 cc_mkenc(u64 val * encryption status of the page. * * - for AMD, bit *set* means the page is encrypted - * - for Intel *clear* means encrypted. + * - for AMD with vTOM and for Intel, *clear* means encrypted */ - switch (vendor) { + switch (cc_vendor) { case CC_VENDOR_AMD: - return val | cc_mask; + if (sev_status & MSR_AMD64_SNP_VTOM) + return val & ~cc_mask; + else + return val | cc_mask; case CC_VENDOR_INTEL: return val & ~cc_mask; default: @@@ -135,12 -118,9 +135,12 @@@ u64 cc_mkdec(u64 val) { /* See comment in cc_mkenc() */ - switch (vendor) { + switch (cc_vendor) { case CC_VENDOR_AMD: - return val & ~cc_mask; + if (sev_status & MSR_AMD64_SNP_VTOM) + return val | cc_mask; + else + return val & ~cc_mask; case CC_VENDOR_INTEL: return val | cc_mask; default: