]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
KVM: VMX: Set MSR index auto-load entry if and only if entry is "new"
authorSean Christopherson <seanjc@google.com>
Sat, 6 Dec 2025 00:17:16 +0000 (16:17 -0800)
committerSean Christopherson <seanjc@google.com>
Thu, 8 Jan 2026 19:52:20 +0000 (11:52 -0800)
When adding an MSR to the auto-load lists, update the MSR index in the
list entry if and only if a new entry is being inserted, as 'i' can only
be non-negative if vmx_find_loadstore_msr_slot() found an entry with the
MSR's index.  Unnecessarily setting the index is benign, but it makes it
harder to see that updating the value is necessary even when an existing
entry for the MSR was found.

No functional change intended.

Reviewed-by: Dapeng Mi <dapeng1.mi@linux.intel.com>
Tested-by: Manali Shukla <manali.shukla@amd.com>
Link: https://patch.msgid.link/20251206001720.468579-41-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/vmx/vmx.c

index 2c50ebf4ff1bf3bfc5a54b0a73de09b3d7786f93..be2a2580e8f1bb4c455204cab2f7185f881846fa 100644 (file)
@@ -1141,16 +1141,16 @@ static void add_atomic_switch_msr(struct vcpu_vmx *vmx, unsigned msr,
 
        if (i < 0) {
                i = m->guest.nr++;
+               m->guest.val[i].index = msr;
                vmcs_write32(VM_ENTRY_MSR_LOAD_COUNT, m->guest.nr);
        }
-       m->guest.val[i].index = msr;
        m->guest.val[i].value = guest_val;
 
        if (j < 0) {
                j = m->host.nr++;
+               m->host.val[j].index = msr;
                vmcs_write32(VM_EXIT_MSR_LOAD_COUNT, m->host.nr);
        }
-       m->host.val[j].index = msr;
        m->host.val[j].value = host_val;
 }