KVM: SVM: Clear current_vmcb during vCPU free for all *possible* CPUs
authorYosry Ahmed <yosry.ahmed@linux.dev>
Tue, 29 Apr 2025 15:32:15 +0000 (08:32 -0700)
committerSean Christopherson <seanjc@google.com>
Tue, 29 Apr 2025 15:39:35 +0000 (08:39 -0700)
When freeing a vCPU and thus its VMCB, clear current_vmcb for all possible
CPUs, not just online CPUs, as it's theoretically possible a CPU could go
offline and come back online in conjunction with KVM reusing the page for
a new VMCB.

Link: https://lore.kernel.org/all/20250320013759.3965869-1-yosry.ahmed@linux.dev
Fixes: fd65d3142f73 ("kvm: svm: Ensure an IBPB on all affected CPUs when freeing a vmcb")
Cc: stable@vger.kernel.org
Cc: Jim Mattson <jmattson@google.com>
Signed-off-by: Yosry Ahmed <yosry.ahmed@linux.dev>
[sean: split to separate patch, write changelog]
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/svm/svm.c

index 8eb482ca3359d9f1a21572a93030c197b29eb951..e6802e33c54dfd798cea8b1b9abfcf3aba9c6bf8 100644 (file)
@@ -1496,7 +1496,7 @@ static void svm_clear_current_vmcb(struct vmcb *vmcb)
 {
        int i;
 
-       for_each_online_cpu(i)
+       for_each_possible_cpu(i)
                cmpxchg(per_cpu_ptr(&svm_data.current_vmcb, i), vmcb, NULL);
 }