33 lines
1.2 KiB
Diff
33 lines
1.2 KiB
Diff
From 9bed8caa4c73f2d524d9600c74e6cbcff71c2456 Mon Sep 17 00:00:00 2001
|
|
From: Yosry Ahmed <yosry.ahmed@linux.dev>
|
|
Date: Tue, 29 Apr 2025 08:32:15 -0700
|
|
Subject: KVM: SVM: Clear current_vmcb during vCPU free for all *possible* CPUs
|
|
|
|
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 | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
--- a/arch/x86/kvm/svm/svm.c
|
|
+++ b/arch/x86/kvm/svm/svm.c
|
|
@@ -1488,7 +1488,7 @@ static void svm_clear_current_vmcb(struc
|
|
{
|
|
int i;
|
|
|
|
- for_each_online_cpu(i)
|
|
+ for_each_possible_cpu(i)
|
|
cmpxchg(per_cpu_ptr(&svm_data.current_vmcb, i), vmcb, NULL);
|
|
}
|
|
|