On Wed, Sep 29, 2021 at 3:24 PM Sean Christopherson <seanjc@xxxxxxxxxx> wrote: > > Manually look for a CPUID.0x1 entry instead of bouncing through > kvm_cpuid() when retrieving the Family-Model-Stepping information for > vCPU RESET/INIT. This fixes a potential undefined behavior bug due to > kvm_cpuid() using the uninitialized "dummy" param as the ECX _input_, > a.k.a. the index. > > A more minimal fix would be to simply zero "dummy", but the extra work in > kvm_cpuid() is wasteful, and KVM should be treating the FMS retrieval as > an out-of-band access, e.g. same as how KVM computes guest.MAXPHYADDR. > Both Intel's SDM and AMD's APM describe the RDX value at RESET/INIT as > holding the CPU's FMS information, not as holding CPUID.0x1.EAX. KVM's > usage of CPUID entries to get FMS is simply a pragmatic approach to avoid > having yet another way for userspace to provide inconsistent data. > > No functional change intended. > > Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx> Reviewed-by: Jim Mattson <jmattson@xxxxxxxxxx>