]> www.infradead.org Git - users/hch/block.git/commitdiff
x86/kvm: Fix SEV check in sev_map_percpu_data()
authorKirill A. Shutemov <kirill.shutemov@linux.intel.com>
Wed, 24 Jan 2024 13:03:17 +0000 (15:03 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 31 Jan 2024 21:21:01 +0000 (16:21 -0500)
The function sev_map_percpu_data() checks if it is running on an SEV
platform by checking the CC_ATTR_GUEST_MEM_ENCRYPT attribute. However,
this attribute is also defined for TDX.

To avoid false positives, add a cc_vendor check.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Fixes: 4d96f9109109 ("x86/sev: Replace occurrences of sev_active() with cc_platform_has()")
Suggested-by: Borislav Petkov (AMD) <bp@alien8.de>
Acked-by: David Rientjes <rientjes@google.com>
Message-Id: <20240124130317.495519-1-kirill.shutemov@linux.intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kernel/kvm.c

index dfe9945b9becee7f6d0ca89d00fd3c1eb4e496c5..428ee74002e1eac63d0e269510f536ba2644c3f7 100644 (file)
@@ -434,7 +434,8 @@ static void __init sev_map_percpu_data(void)
 {
        int cpu;
 
-       if (!cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT))
+       if (cc_vendor != CC_VENDOR_AMD ||
+           !cc_platform_has(CC_ATTR_GUEST_MEM_ENCRYPT))
                return;
 
        for_each_possible_cpu(cpu) {