mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 08:33:17 +02:00
Merge branch 'x86/cc' into x86/sev
Pick up the cc_vendor changes.
This commit is contained in:
commit
87efe38410
|
|
@ -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)
|
||||
|
|
@ -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:
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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…
Reference in New Issue
Block a user