[PATCH 24/31] KVM: x86/mmu: Do not prefetch sptes on gfns backed by memory attributes
From: Paolo Bonzini
Date: Fri Sep 18 2026 - 10:08:09 EST
From: Nicolas Saenz Julienne <nsaenz@xxxxxxxxxx>
Prefetched SPTEs are always given full access. Do not prefetch GFNs
that have memory protections applied.
Signed-off-by: Nicolas Saenz Julienne <nsaenz@xxxxxxxxxx>
Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
---
arch/x86/kvm/mmu/mmu.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
index 1ecb3f3fe832..3c926f95f87b 100644
--- a/arch/x86/kvm/mmu/mmu.c
+++ b/arch/x86/kvm/mmu/mmu.c
@@ -3187,6 +3187,11 @@ static bool kvm_mmu_prefetch_sptes(struct kvm_vcpu *vcpu, gfn_t gfn, u64 *sptep,
return false;
for (i = 0; i < nr_pages; i++, gfn++, sptep++) {
+ if (kvm_get_memory_attributes(vcpu->kvm, gfn)) {
+ kvm_release_page_clean(pages[i]);
+ continue;
+ }
+
mmu_set_spte(vcpu, slot, sptep, access, gfn,
page_to_pfn(pages[i]), NULL);
--
2.52.0