Loading arch/x86/coco/core.c +4 −9 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ #include <asm/coco.h> #include <asm/processor.h> static enum cc_vendor vendor __ro_after_init; enum cc_vendor cc_vendor __ro_after_init; static u64 cc_mask __ro_after_init; static bool intel_cc_platform_has(enum cc_attr attr) Loading Loading @@ -99,7 +99,7 @@ static bool amd_cc_platform_has(enum cc_attr attr) 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: Loading @@ -119,7 +119,7 @@ u64 cc_mkenc(u64 val) * - for AMD, bit *set* means the page is encrypted * - for AMD with vTOM and for Intel, *clear* means encrypted */ switch (vendor) { switch (cc_vendor) { case CC_VENDOR_AMD: if (sev_status & MSR_AMD64_SNP_VTOM) return val & ~cc_mask; Loading @@ -135,7 +135,7 @@ u64 cc_mkenc(u64 val) u64 cc_mkdec(u64 val) { /* See comment in cc_mkenc() */ switch (vendor) { switch (cc_vendor) { case CC_VENDOR_AMD: if (sev_status & MSR_AMD64_SNP_VTOM) return val | cc_mask; Loading @@ -149,11 +149,6 @@ u64 cc_mkdec(u64 val) } EXPORT_SYMBOL_GPL(cc_mkdec); __init void cc_set_vendor(enum cc_vendor v) { vendor = v; } __init void cc_set_mask(u64 mask) { cc_mask = mask; Loading arch/x86/include/asm/coco.h +20 −3 Original line number Diff line number Diff line Loading @@ -10,13 +10,30 @@ enum cc_vendor { CC_VENDOR_INTEL, }; void cc_set_vendor(enum cc_vendor v); void cc_set_mask(u64 mask); #ifdef CONFIG_ARCH_HAS_CC_PLATFORM extern enum cc_vendor cc_vendor; static inline enum cc_vendor cc_get_vendor(void) { return cc_vendor; } static inline void cc_set_vendor(enum cc_vendor vendor) { cc_vendor = vendor; } void cc_set_mask(u64 mask); u64 cc_mkenc(u64 val); u64 cc_mkdec(u64 val); #else static inline enum cc_vendor cc_get_vendor(void) { return CC_VENDOR_NONE; } static inline void cc_set_vendor(enum cc_vendor vendor) { } static inline u64 cc_mkenc(u64 val) { return val; Loading Loading
arch/x86/coco/core.c +4 −9 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ #include <asm/coco.h> #include <asm/processor.h> static enum cc_vendor vendor __ro_after_init; enum cc_vendor cc_vendor __ro_after_init; static u64 cc_mask __ro_after_init; static bool intel_cc_platform_has(enum cc_attr attr) Loading Loading @@ -99,7 +99,7 @@ static bool amd_cc_platform_has(enum cc_attr attr) 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: Loading @@ -119,7 +119,7 @@ u64 cc_mkenc(u64 val) * - for AMD, bit *set* means the page is encrypted * - for AMD with vTOM and for Intel, *clear* means encrypted */ switch (vendor) { switch (cc_vendor) { case CC_VENDOR_AMD: if (sev_status & MSR_AMD64_SNP_VTOM) return val & ~cc_mask; Loading @@ -135,7 +135,7 @@ u64 cc_mkenc(u64 val) u64 cc_mkdec(u64 val) { /* See comment in cc_mkenc() */ switch (vendor) { switch (cc_vendor) { case CC_VENDOR_AMD: if (sev_status & MSR_AMD64_SNP_VTOM) return val | cc_mask; Loading @@ -149,11 +149,6 @@ u64 cc_mkdec(u64 val) } EXPORT_SYMBOL_GPL(cc_mkdec); __init void cc_set_vendor(enum cc_vendor v) { vendor = v; } __init void cc_set_mask(u64 mask) { cc_mask = mask; Loading
arch/x86/include/asm/coco.h +20 −3 Original line number Diff line number Diff line Loading @@ -10,13 +10,30 @@ enum cc_vendor { CC_VENDOR_INTEL, }; void cc_set_vendor(enum cc_vendor v); void cc_set_mask(u64 mask); #ifdef CONFIG_ARCH_HAS_CC_PLATFORM extern enum cc_vendor cc_vendor; static inline enum cc_vendor cc_get_vendor(void) { return cc_vendor; } static inline void cc_set_vendor(enum cc_vendor vendor) { cc_vendor = vendor; } void cc_set_mask(u64 mask); u64 cc_mkenc(u64 val); u64 cc_mkdec(u64 val); #else static inline enum cc_vendor cc_get_vendor(void) { return CC_VENDOR_NONE; } static inline void cc_set_vendor(enum cc_vendor vendor) { } static inline u64 cc_mkenc(u64 val) { return val; Loading