On Thu, 2024-09-05 at 12:31 +0300, Tony Lindgren wrote: > > diff --git a/arch/x86/kvm/vmx/tdx.c b/arch/x86/kvm/vmx/tdx.c > > index c00c73b2ad4c..dd6e3149ff5a 100644 > > --- a/arch/x86/kvm/vmx/tdx.c > > +++ b/arch/x86/kvm/vmx/tdx.c > > @@ -2476,8 +2476,14 @@ static int __tdx_td_init(struct kvm *kvm, struct > > td_params *td_params, > > * Return a hint to the user because it's sometimes hard > > for the > > * user to figure out which operand is invalid. > > SEAMCALL status > > * code includes which operand caused invalid operand > > error. > > + * > > + * TDX_OPERAND_INVALID_CPUID_CONFIG contains more info > > + * in rcx (i.e. leaf/sub-leaf), warn it to help figure > > + * out the invalid CPUID config. > > */ > > *seamcall_err = err; > > + if (err == (TDX_OPERAND_INVALID | > > TDX_OPERAND_ID_CPUID_CONFIG)) > > + pr_tdx_error_1(TDH_MNG_INIT, err, rcx); > > ret = -EINVAL; > > goto teardown; Currently we filter by supported CPUID bits. But if we drop that filter and just allow the TDX module to reject (based on discussion https://lore.kernel.org/kvm/CABgObfbyd-a_bD-3fKmF3jVgrTiCDa3SHmrmugRji8BB-vs5GA@xxxxxxxxxxxxxx) ...then I guess this could be useful for userspace debugging. I'd say let's leave this for a follow on patch. It's not critical for now.