Commit feb627e8d6f6 ("KVM: x86: Forbid KVM_SET_CPUID{,2} after KVM_RUN") forbade chaning vCPU's CPUID data after the first KVM_RUN but vmx_pmu_msrs_test does exactly that. Test VM needs to be re-created after vcpu_run(). Reported-by: kernel test robot <oliver.sang@xxxxxxxxx> Fixes: feb627e8d6f6 ("KVM: x86: Forbid KVM_SET_CPUID{,2} after KVM_RUN") Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> --- tools/testing/selftests/kvm/x86_64/vmx_pmu_msrs_test.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/testing/selftests/kvm/x86_64/vmx_pmu_msrs_test.c b/tools/testing/selftests/kvm/x86_64/vmx_pmu_msrs_test.c index 23051d84b907..17882f79deed 100644 --- a/tools/testing/selftests/kvm/x86_64/vmx_pmu_msrs_test.c +++ b/tools/testing/selftests/kvm/x86_64/vmx_pmu_msrs_test.c @@ -99,6 +99,11 @@ int main(int argc, char *argv[]) vcpu_run(vm, VCPU_ID); ASSERT_EQ(vcpu_get_msr(vm, VCPU_ID, MSR_IA32_PERF_CAPABILITIES), PMU_CAP_FW_WRITES); + /* Re-create guest VM after KVM_RUN so CPUID can be changed */ + kvm_vm_free(vm); + vm = vm_create_default(VCPU_ID, 0, guest_code); + vcpu_set_cpuid(vm, VCPU_ID, cpuid); + /* testcase 2, check valid LBR formats are accepted */ vcpu_set_msr(vm, 0, MSR_IA32_PERF_CAPABILITIES, 0); ASSERT_EQ(vcpu_get_msr(vm, VCPU_ID, MSR_IA32_PERF_CAPABILITIES), 0); -- 2.33.1