x86/realmode: Don't decrypt trampoline area under SEV
authorTom Lendacky <thomas.lendacky@amd.com>
Fri, 20 Oct 2017 14:30:46 +0000 (09:30 -0500)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 7 Nov 2017 14:35:55 +0000 (15:35 +0100)
When SEV is active the trampoline area will need to be in encrypted
memory so only mark the area decrypted if SME is active.

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Borislav Petkov <bp@suse.de>
Tested-by: Borislav Petkov <bp@suse.de>
Cc: Laura Abbott <labbott@redhat.com>
Cc: kvm@vger.kernel.org
Cc: Borislav Petkov <bp@alien8.de>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Link: https://lkml.kernel.org/r/20171020143059.3291-5-brijesh.singh@amd.com
arch/x86/realmode/init.c

index ed84d3917a5916fe003188c2603b81317cce7732..d10105825d57a7faee5f3221d04f0e77b9807e45 100644 (file)
@@ -64,9 +64,10 @@ static void __init setup_real_mode(void)
        /*
         * If SME is active, the trampoline area will need to be in
         * decrypted memory in order to bring up other processors
-        * successfully.
+        * successfully. This is not needed for SEV.
         */
-       set_memory_decrypted((unsigned long)base, size >> PAGE_SHIFT);
+       if (sme_active())
+               set_memory_decrypted((unsigned long)base, size >> PAGE_SHIFT);
 
        memcpy(base, real_mode_blob, size);