On Tue, Sep 10, 2024 at 07:29:13PM +0200, Paolo Bonzini wrote: > On 9/3/24 09:19, Tony Lindgren wrote: > > > > + gpa_t gpa_bits = gfn_to_gpa(kvm_gfn_direct_bits(vcpu->kvm)); > > > > + unsigned int g_maxpa = __ffs(gpa_bits) + 1; > > > > + > > > > + output_e->eax &= ~0x00ff0000; > > > > + output_e->eax |= g_maxpa << 16; > > > Is it possible this workaround escapes the KVM supported bits check? > > > > Yes it might need a mask for (g_maxpa << 16) & 0x00ff0000 to avoid setting > > the wrong bits, will check. > > The mask is okay, __ffs(gpa_bits) + 1 will be between 1 and 64. OK > The question is whether the TDX module will accept nonzero bits 16..23 of > CPUID[0x80000008].EAX. Just for reference, that's the 0x80000008 quirk as you noticed in 22/25. Regards, Tony