From: Kai Huang Date: Wed, 30 Oct 2024 19:00:15 +0000 (-0700) Subject: KVM: TDX: Get TDX global information X-Git-Tag: v6.16-rc1~78^2~17^2~5^2~17 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=45154fb010f7fdd99a67ce110f2abd646eaa209b;p=linux-block.git KVM: TDX: Get TDX global information KVM will need to consult some essential TDX global information to create and run TDX guests. Get the global information after initializing TDX. Signed-off-by: Kai Huang Signed-off-by: Rick Edgecombe Message-ID: <20241030190039.77971-3-rick.p.edgecombe@intel.com> Signed-off-by: Paolo Bonzini --- diff --git a/arch/x86/kvm/vmx/tdx.c b/arch/x86/kvm/vmx/tdx.c index 3c089ed3b843..b74a50e8d086 100644 --- a/arch/x86/kvm/vmx/tdx.c +++ b/arch/x86/kvm/vmx/tdx.c @@ -13,6 +13,8 @@ module_param_named(tdx, enable_tdx, bool, 0444); static enum cpuhp_state tdx_cpuhp_state; +static const struct tdx_sys_info *tdx_sysinfo; + static int tdx_online_cpu(unsigned int cpu) { unsigned long flags; @@ -92,11 +94,20 @@ static int __init __tdx_bringup(void) if (r) goto tdx_bringup_err; + /* Get TDX global information for later use */ + tdx_sysinfo = tdx_get_sysinfo(); + if (WARN_ON_ONCE(!tdx_sysinfo)) { + r = -EINVAL; + goto get_sysinfo_err; + } + /* * Leave hardware virtualization enabled after TDX is enabled * successfully. TDX CPU hotplug depends on this. */ return 0; +get_sysinfo_err: + __tdx_cleanup(); tdx_bringup_err: kvm_disable_virtualization(); return r;