x86/mm: Fix memory encryption features advertisement
authorKirill A. Shutemov <kirill.shutemov@linux.intel.com>
Wed, 24 Jan 2024 14:02:16 +0000 (16:02 +0200)
committerBorislav Petkov (AMD) <bp@alien8.de>
Mon, 29 Jan 2024 16:08:27 +0000 (17:08 +0100)
commit4cab62c058f5a150d9960c112362e5c76d204d9d
tree38b3ca003972f4dab425c26ddf110f1baeccf725
parente3ef461af35a8c74f2f4ce6616491ddb355a208f
x86/mm: Fix memory encryption features advertisement

When memory encryption is enabled, the kernel prints the encryption
flavor that the system supports.

The check assumes that everything is AMD SME/SEV if it doesn't have
the TDX CPU feature set.

Hyper-V vTOM sets cc_vendor to CC_VENDOR_INTEL when it runs as L2 guest
on top of TDX, but not X86_FEATURE_TDX_GUEST. Hyper-V only needs memory
encryption enabled for I/O without the rest of CoCo enabling.

To avoid confusion, check the cc_vendor directly.

  [ bp: Massage commit message. ]

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Jeremi Piotrowski <jpiotrowski@linux.microsoft.com>
Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Acked-by: Tom Lendacky <thomas.lendacky@amd.com>
Acked-by: Kai Huang <kai.huang@intel.com>
Link: https://lore.kernel.org/r/20240124140217.533748-1-kirill.shutemov@linux.intel.com
arch/x86/mm/mem_encrypt.c