On Wed, Apr 24, 2024 at 12:11:25AM +0000, "Huang, Kai" <kai.huang@xxxxxxxxx> wrote: > On Mon, 2024-02-26 at 00:25 -0800, isaku.yamahata@xxxxxxxxx wrote: > > --- a/arch/x86/kvm/vmx/tdx_ops.h > > +++ b/arch/x86/kvm/vmx/tdx_ops.h > > @@ -40,6 +40,10 @@ static inline u64 tdx_seamcall(u64 op, struct tdx_module_args *in, > > return ret; > > } > > > > +#ifdef CONFIG_INTEL_TDX_HOST > > +void pr_tdx_error(u64 op, u64 error_code, const struct tdx_module_args *out); > > +#endif > > + > > Why this needs to be inside the CONFIG_INTEL_TDX_HOST while other > tdh_xxx() don't? > > I suppose all tdh_xxx() together with this pr_tdx_error() should only be > called tdx.c, which is only built when CONFIG_INTEL_TDX_HOST is true? > > In fact, tdx_seamcall() directly calls seamcall() and seamcall_ret(), > which are only present when CONFIG_INTEL_TDX_HOST is on. > > So things are really confused here. I do believe we should just remove > this CONFIG_INTEL_TDX_HOST around pr_tdx_error() so all functions in > "tdx_ops.h" should only be used in tdx.c. You're right, please go clean them up. -- Isaku Yamahata <isaku.yamahata@xxxxxxxxx>