[PATCH v6 40/44] KVM: VMX: Set MSR index auto-load entry if and only if entry is "new"

Sean Christopherson
2025-12-06T00:18:48Z

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.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
arch/x86/kvm/vmx/vmx.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index 2c50ebf4ff1b..be2a2580e8f1 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -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;
}

--
2.52.0.223.gf5cc29aaa4-goog