From dd1e29c4828b01b477a003679234097434f800d4 Mon Sep 17 00:00:00 2001 From: Louis Burda Date: Wed, 5 Oct 2022 17:49:06 +0200 Subject: More minor refactors --- sevstep/mmu.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'sevstep/mmu.c') diff --git a/sevstep/mmu.c b/sevstep/mmu.c index c08e2f9..0ebdd83 100644 --- a/sevstep/mmu.c +++ b/sevstep/mmu.c @@ -52,9 +52,10 @@ sevstep_uspt_page_fault_handle(struct kvm_vcpu *vcpu, bool sevstep_spte_protect(u64 *sptep, bool pt_protect, enum kvm_page_track_mode mode) { - u64 spte = *sptep; - bool shouldFlush = false; + u64 spte; + bool flush; + spte = *sptep; if (!is_writable_pte(spte) && !(pt_protect && is_mmu_writable_spte(spte))) return false; @@ -63,9 +64,10 @@ sevstep_spte_protect(u64 *sptep, bool pt_protect, enum kvm_page_track_mode mode) if (pt_protect) spte &= ~EPT_SPTE_MMU_WRITABLE; + flush = false; if (mode == KVM_PAGE_TRACK_WRITE) { spte = spte & ~PT_WRITABLE_MASK; - shouldFlush = true; + flush = true; } else if (mode == KVM_PAGE_TRACK_RESET_ACCESSED) { spte = spte & ~PT_ACCESSED_MASK; } else if (mode == KVM_PAGE_TRACK_ACCESS) { @@ -73,19 +75,20 @@ sevstep_spte_protect(u64 *sptep, bool pt_protect, enum kvm_page_track_mode mode) spte = spte & ~PT_WRITABLE_MASK; spte = spte & ~PT_USER_MASK; spte = spte | (0x1ULL << PT64_NX_SHIFT); - shouldFlush = true; + flush = true; } else if (mode == KVM_PAGE_TRACK_EXEC) { spte = spte | (0x1ULL << PT64_NX_SHIFT); - shouldFlush = true; + flush = true; } else if (mode == KVM_PAGE_TRACK_RESET_EXEC) { spte = spte & ~(0x1ULL << PT64_NX_SHIFT); - shouldFlush = true; + flush = true; } else { printk(KERN_WARNING "spte_protect was called with invalid mode" "parameter %d\n",mode); } - shouldFlush |= mmu_spte_update(sptep, spte); - return shouldFlush; + flush |= mmu_spte_update(sptep, spte); + + return flush; } EXPORT_SYMBOL(sevstep_spte_protect); -- cgit v1.2.3-71-gd317