Lines Matching refs:old_spte

222 				u64 old_spte, u64 new_spte, int level,
225 static void handle_changed_spte_acc_track(u64 old_spte, u64 new_spte, int level) in handle_changed_spte_acc_track() argument
227 if (!is_shadow_present_pte(old_spte) || !is_last_spte(old_spte, level)) in handle_changed_spte_acc_track()
230 if (is_accessed_spte(old_spte) && in handle_changed_spte_acc_track()
232 spte_to_pfn(old_spte) != spte_to_pfn(new_spte))) in handle_changed_spte_acc_track()
233 kvm_set_pfn_accessed(spte_to_pfn(old_spte)); in handle_changed_spte_acc_track()
237 u64 old_spte, u64 new_spte, int level) in handle_changed_spte_dirty_log() argument
245 pfn_changed = spte_to_pfn(old_spte) != spte_to_pfn(new_spte); in handle_changed_spte_dirty_log()
247 if ((!is_writable_pte(old_spte) || pfn_changed) && in handle_changed_spte_dirty_log()
397 u64 old_spte, u64 new_spte, int level, in __handle_changed_spte() argument
400 bool was_present = is_shadow_present_pte(old_spte); in __handle_changed_spte()
402 bool was_leaf = was_present && is_last_spte(old_spte, level); in __handle_changed_spte()
404 bool pfn_changed = spte_to_pfn(old_spte) != spte_to_pfn(new_spte); in __handle_changed_spte()
424 as_id, gfn, old_spte, new_spte, level); in __handle_changed_spte()
433 if (old_spte == new_spte) in __handle_changed_spte()
436 trace_kvm_tdp_mmu_spte_changed(as_id, gfn, level, old_spte, new_spte); in __handle_changed_spte()
450 if (WARN_ON(!is_mmio_spte(old_spte) && in __handle_changed_spte()
459 as_id, gfn, old_spte, new_spte, level); in __handle_changed_spte()
466 if (was_leaf && is_dirty_spte(old_spte) && in __handle_changed_spte()
468 kvm_set_pfn_dirty(spte_to_pfn(old_spte)); in __handle_changed_spte()
476 spte_to_child_pt(old_spte, level), shared); in __handle_changed_spte()
480 u64 old_spte, u64 new_spte, int level, in handle_changed_spte() argument
483 __handle_changed_spte(kvm, as_id, gfn, old_spte, new_spte, level, in handle_changed_spte()
485 handle_changed_spte_acc_track(old_spte, new_spte, level); in handle_changed_spte()
486 handle_changed_spte_dirty_log(kvm, as_id, gfn, old_spte, in handle_changed_spte()
513 if (is_removed_spte(iter->old_spte)) in tdp_mmu_set_spte_atomic()
520 if (cmpxchg64(rcu_dereference(iter->sptep), iter->old_spte, in tdp_mmu_set_spte_atomic()
521 new_spte) != iter->old_spte) in tdp_mmu_set_spte_atomic()
524 __handle_changed_spte(kvm, iter->as_id, iter->gfn, iter->old_spte, in tdp_mmu_set_spte_atomic()
526 handle_changed_spte_acc_track(iter->old_spte, new_spte, iter->level); in tdp_mmu_set_spte_atomic()
591 WARN_ON(is_removed_spte(iter->old_spte)); in __tdp_mmu_set_spte()
595 __handle_changed_spte(kvm, iter->as_id, iter->gfn, iter->old_spte, in __tdp_mmu_set_spte()
598 handle_changed_spte_acc_track(iter->old_spte, new_spte, in __tdp_mmu_set_spte()
602 iter->old_spte, new_spte, in __tdp_mmu_set_spte()
631 if (!is_shadow_present_pte(_iter.old_spte) || \
632 !is_last_spte(_iter.old_spte, _iter.level)) \
736 if (!is_shadow_present_pte(iter.old_spte)) in zap_gfn_range()
747 !is_last_spte(iter.old_spte, iter.level)) in zap_gfn_range()
758 iter.old_spte = READ_ONCE(*rcu_dereference(iter.sptep)); in zap_gfn_range()
911 fault->pfn, iter->old_spte, fault->prefetch, true, in tdp_mmu_map_handle_target_level()
914 if (new_spte == iter->old_spte) in tdp_mmu_map_handle_target_level()
970 disallowed_hugepage_adjust(fault, iter.old_spte, iter.level); in kvm_tdp_mmu_map()
980 if (is_shadow_present_pte(iter.old_spte) && in kvm_tdp_mmu_map()
981 is_large_pte(iter.old_spte)) { in kvm_tdp_mmu_map()
990 iter.old_spte = READ_ONCE(*rcu_dereference(iter.sptep)); in kvm_tdp_mmu_map()
993 if (!is_shadow_present_pte(iter.old_spte)) { in kvm_tdp_mmu_map()
999 if (is_removed_spte(iter.old_spte)) in kvm_tdp_mmu_map()
1081 if (!is_accessed_spte(iter->old_spte)) in age_gfn_range()
1084 new_spte = iter->old_spte; in age_gfn_range()
1112 return is_accessed_spte(iter->old_spte); in test_age_gfn()
1129 !is_shadow_present_pte(iter->old_spte)) in set_spte_gfn()
1141 new_spte = kvm_mmu_changed_pte_notifier_make_spte(iter->old_spte, in set_spte_gfn()
1189 if (!is_shadow_present_pte(iter.old_spte) || in wrprot_gfn_range()
1190 !is_last_spte(iter.old_spte, iter.level) || in wrprot_gfn_range()
1191 !(iter.old_spte & PT_WRITABLE_MASK)) in wrprot_gfn_range()
1194 new_spte = iter.old_spte & ~PT_WRITABLE_MASK; in wrprot_gfn_range()
1201 iter.old_spte = READ_ONCE(*rcu_dereference(iter.sptep)); in wrprot_gfn_range()
1252 if (spte_ad_need_write_protect(iter.old_spte)) { in clear_dirty_gfn_range()
1253 if (is_writable_pte(iter.old_spte)) in clear_dirty_gfn_range()
1254 new_spte = iter.old_spte & ~PT_WRITABLE_MASK; in clear_dirty_gfn_range()
1258 if (iter.old_spte & shadow_dirty_mask) in clear_dirty_gfn_range()
1259 new_spte = iter.old_spte & ~shadow_dirty_mask; in clear_dirty_gfn_range()
1269 iter.old_spte = READ_ONCE(*rcu_dereference(iter.sptep)); in clear_dirty_gfn_range()
1327 if (wrprot || spte_ad_need_write_protect(iter.old_spte)) { in clear_dirty_pt_masked()
1328 if (is_writable_pte(iter.old_spte)) in clear_dirty_pt_masked()
1329 new_spte = iter.old_spte & ~PT_WRITABLE_MASK; in clear_dirty_pt_masked()
1333 if (iter.old_spte & shadow_dirty_mask) in clear_dirty_pt_masked()
1334 new_spte = iter.old_spte & ~shadow_dirty_mask; in clear_dirty_pt_masked()
1384 if (!is_shadow_present_pte(iter.old_spte) || in zap_collapsible_spte_range()
1385 !is_last_spte(iter.old_spte, iter.level)) in zap_collapsible_spte_range()
1388 pfn = spte_to_pfn(iter.old_spte); in zap_collapsible_spte_range()
1400 iter.old_spte = READ_ONCE(*rcu_dereference(iter.sptep)); in zap_collapsible_spte_range()
1441 if (!is_shadow_present_pte(iter.old_spte) || in write_protect_gfn()
1442 !is_last_spte(iter.old_spte, iter.level)) in write_protect_gfn()
1445 if (!is_writable_pte(iter.old_spte)) in write_protect_gfn()
1448 new_spte = iter.old_spte & in write_protect_gfn()
1497 sptes[leaf] = iter.old_spte; in kvm_tdp_mmu_get_walk()
1523 *spte = iter.old_spte; in kvm_tdp_mmu_fast_pf_get_last_sptep()