On Tue, Nov 16, 2021 at 10:39:21AM -0500, Tianyu Lan wrote:
quoted hunk ↗ jump to hunk
diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c
index 35487305d8af..65bc385ae07a 100644
--- a/arch/x86/mm/mem_encrypt.c
+++ b/arch/x86/mm/mem_encrypt.c
@@ -31,6 +31,7 @@
#include <asm/processor-flags.h>
#include <asm/msr.h>
#include <asm/cmdline.h>
+#include <asm/mshyperv.h>
#include "mm_internal.h"
@@ -203,7 +204,8 @@ void __init sev_setup_arch(void)
phys_addr_t total_mem = memblock_phys_mem_size();
unsigned long size;
- if (!cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT))
+ if (!cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT)
+ && !hv_is_isolation_supported())
Are we gonna start sprinkling this hv_is_isolation_supported() check
everywhere now?
Are those isolation VMs SEV-like guests? Is CC_ATTR_GUEST_MEM_ENCRYPT
set on them?
What you should do, instead, is add an isol. VM specific
hv_cc_platform_has() just like amd_cc_platform_has() and handle
the cc_attrs there for your platform, like return false for
CC_ATTR_GUEST_MEM_ENCRYPT and then you won't need to add that hv_* thing
everywhere.
And then fix it up in __set_memory_enc_dec() too.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette