[PATCH 14/21] KVM: SEV: Document that checking for SEV+ guests when reclaiming memory is "safe"

From: Sean Christopherson

Date: Tue Mar 10 2026 - 19:51:54 EST


Document that the check for an SEV+ guest when reclaiming guest memory is
safe even though kvm->lock isn't held. This will allow asserting that
kvm->lock is held in the SEV accessors, without triggering false positives
on the "safe" cases.

No functional change intended.

Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx>
---
arch/x86/kvm/svm/sev.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c
index 9a907bc057d0..7bb9318f0703 100644
--- a/arch/x86/kvm/svm/sev.c
+++ b/arch/x86/kvm/svm/sev.c
@@ -3296,8 +3296,14 @@ void sev_guest_memory_reclaimed(struct kvm *kvm)
* With SNP+gmem, private/encrypted memory is unreachable via the
* hva-based mmu notifiers, i.e. these events are explicitly scoped to
* shared pages, where there's no need to flush caches.
+ *
+ * Checking for SEV+ outside of kvm->lock is safe as __sev_guest_init()
+ * can only be done before vCPUs are created, caches can be incoherent
+ * if and only if a vCPU was run, and either this task will see the VM
+ * as being SEV+ or the vCPU won't be to access the memory (because of
+ * the in-progress invalidation).
*/
- if (!sev_guest(kvm) || sev_snp_guest(kvm))
+ if (!____sev_guest(kvm) || ____sev_snp_guest(kvm))
return;

sev_writeback_caches(kvm);
--
2.53.0.473.g4a7958ca14-goog