Commit e6c8728a authored by Xiaoyao Li's avatar Xiaoyao Li Committed by Sean Christopherson
Browse files

KVM: x86: Remove the unreachable case for 0x80000022 leaf in __do_cpuid_func()

Remove dead/unreachable (and misguided) code in KVM's processing of
0x80000022.  The case statement breaks early if PERFMON_V2 isnt supported,
i.e. kvm_cpu_cap_has(X86_FEATURE_PERFMON_V2) must be true when KVM reaches
the code code to setup EBX.

Note, early versions of the patch that became commit 94cdeebd ("KVM:
x86/cpuid: Add AMD CPUID ExtPerfMonAndDbg leaf 0x80000022") didn't break
early on lack of PERFMON_V2 support, and instead enumerated the effective
number of counters KVM could emulate.  All of that code was flawed, e.g.
the APM explicitly states EBX is valid only for v2.

  Performance Monitoring Version 2 supported. When set,
  CPUID_Fn8000_0022_EBX reports the number of available performance counters.

When the flaw of not respecting v2 support was addressed, the misguided
stuffing of the number of counters got left behind.

Link: https://lore.kernel.org/all/20220919093453.71737-4-likexu@tencent.com


Fixes: 94cdeebd ("KVM: x86/cpuid: Add AMD CPUID ExtPerfMonAndDbg leaf 0x80000022")
Signed-off-by: default avatarXiaoyao Li <xiaoyao.li@intel.com>
Link: https://lore.kernel.org/r/20250304082314.472202-2-xiaoyao.li@intel.com


[sean: elaborate on the situation a bit more, add Fixes]
Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
parent 2a289aed
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment