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.