Fix type length error since pmu->fixed_ctr_ctrl is u64 but the local variable old_fixed_ctr_ctrl is u8. Truncating the value leads to information loss at runtime. This leads to incorrect value in old_ctrl retrieved from each field of old_fixed_ctr_ctrl and causes incorrect code execution within the for loop of reprogram_fixed_counters(). So fix this type to u64. Fixes: 76d287b2342e ("KVM: x86/pmu: Drop "u8 ctrl, int idx" for reprogram_fixed_counter()") Signed-off-by: Mingwei Zhang <mizhang@xxxxxxxxxx> --- arch/x86/kvm/vmx/pmu_intel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kvm/vmx/pmu_intel.c b/arch/x86/kvm/vmx/pmu_intel.c index a6216c874729..315c7c2ba89b 100644 --- a/arch/x86/kvm/vmx/pmu_intel.c +++ b/arch/x86/kvm/vmx/pmu_intel.c @@ -71,7 +71,7 @@ static int fixed_pmc_events[] = { static void reprogram_fixed_counters(struct kvm_pmu *pmu, u64 data) { struct kvm_pmc *pmc; - u8 old_fixed_ctr_ctrl = pmu->fixed_ctr_ctrl; + u64 old_fixed_ctr_ctrl = pmu->fixed_ctr_ctrl; int i; pmu->fixed_ctr_ctrl = data; base-commit: 6613476e225e090cc9aad49be7fa504e290dd33d -- 2.43.0.429.g432eaa2c6b-goog