From: Joerg Roedel <[email protected]>

SEV-ES needs special handling to support kexec. Disable it when SEV-ES
is active until support is implemented.

Cc: [email protected] # v5.10+
Signed-off-by: Joerg Roedel <[email protected]>
---
 arch/x86/kernel/machine_kexec_64.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/x86/kernel/machine_kexec_64.c 
b/arch/x86/kernel/machine_kexec_64.c
index f5da4a18070a..5079a75f8944 100644
--- a/arch/x86/kernel/machine_kexec_64.c
+++ b/arch/x86/kernel/machine_kexec_64.c
@@ -269,11 +269,22 @@ static void load_segments(void)
                );
 }
 
+static bool machine_kexec_supported(void)
+{
+       if (cc_platform_has(CC_ATTR_GUEST_STATE_ENCRYPT))
+               return false;
+
+       return true;
+}
+
 int machine_kexec_prepare(struct kimage *image)
 {
        unsigned long start_pgtable;
        int result;
 
+       if (!machine_kexec_supported())
+               return -ENOSYS;
+
        /* Calculate the offsets */
        start_pgtable = page_to_pfn(image->control_code_page) << PAGE_SHIFT;
 
-- 
2.34.1

_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to