Lines Matching refs:new_spte

334 				u64 old_spte, u64 new_spte, int level,
337 static void handle_changed_spte_acc_track(u64 old_spte, u64 new_spte, int level) in handle_changed_spte_acc_track() argument
343 (!is_shadow_present_pte(new_spte) || !is_accessed_spte(new_spte) || in handle_changed_spte_acc_track()
344 spte_to_pfn(old_spte) != spte_to_pfn(new_spte))) in handle_changed_spte_acc_track()
349 u64 old_spte, u64 new_spte, int level) in handle_changed_spte_dirty_log() argument
357 pfn_changed = spte_to_pfn(old_spte) != spte_to_pfn(new_spte); in handle_changed_spte_dirty_log()
360 is_writable_pte(new_spte)) { in handle_changed_spte_dirty_log()
523 u64 old_spte, u64 new_spte, int level, in __handle_changed_spte() argument
527 bool is_present = is_shadow_present_pte(new_spte); in __handle_changed_spte()
529 bool is_leaf = is_present && is_last_spte(new_spte, level); in __handle_changed_spte()
530 bool pfn_changed = spte_to_pfn(old_spte) != spte_to_pfn(new_spte); in __handle_changed_spte()
550 as_id, gfn, old_spte, new_spte, level); in __handle_changed_spte()
559 if (old_spte == new_spte) in __handle_changed_spte()
562 trace_kvm_tdp_mmu_spte_changed(as_id, gfn, level, old_spte, new_spte); in __handle_changed_spte()
565 check_spte_writable_invariants(new_spte); in __handle_changed_spte()
580 !is_mmio_spte(new_spte) && in __handle_changed_spte()
581 !is_removed_spte(new_spte))) in __handle_changed_spte()
588 as_id, gfn, old_spte, new_spte, level); in __handle_changed_spte()
596 (!is_present || !is_dirty_spte(new_spte) || pfn_changed)) in __handle_changed_spte()
611 u64 old_spte, u64 new_spte, int level, in handle_changed_spte() argument
614 __handle_changed_spte(kvm, as_id, gfn, old_spte, new_spte, level, in handle_changed_spte()
616 handle_changed_spte_acc_track(old_spte, new_spte, level); in handle_changed_spte()
618 new_spte, level); in handle_changed_spte()
640 u64 new_spte) in tdp_mmu_set_spte_atomic() argument
658 if (!try_cmpxchg64(sptep, &iter->old_spte, new_spte)) in tdp_mmu_set_spte_atomic()
662 new_spte, iter->level, true); in tdp_mmu_set_spte_atomic()
663 handle_changed_spte_acc_track(iter->old_spte, new_spte, iter->level); in tdp_mmu_set_spte_atomic()
722 u64 old_spte, u64 new_spte, gfn_t gfn, int level, in __tdp_mmu_set_spte() argument
734 WARN_ON(is_removed_spte(old_spte) || is_removed_spte(new_spte)); in __tdp_mmu_set_spte()
736 old_spte = kvm_tdp_mmu_write_spte(sptep, old_spte, new_spte, level); in __tdp_mmu_set_spte()
738 __handle_changed_spte(kvm, as_id, gfn, old_spte, new_spte, level, false); in __tdp_mmu_set_spte()
741 handle_changed_spte_acc_track(old_spte, new_spte, level); in __tdp_mmu_set_spte()
744 new_spte, level); in __tdp_mmu_set_spte()
749 u64 new_spte, bool record_acc_track, in _tdp_mmu_set_spte() argument
755 iter->old_spte, new_spte, in _tdp_mmu_set_spte()
761 u64 new_spte) in tdp_mmu_set_spte() argument
763 _tdp_mmu_set_spte(kvm, iter, new_spte, true, true); in tdp_mmu_set_spte()
768 u64 new_spte) in tdp_mmu_set_spte_no_acc_track() argument
770 _tdp_mmu_set_spte(kvm, iter, new_spte, false, true); in tdp_mmu_set_spte_no_acc_track()
775 u64 new_spte) in tdp_mmu_set_spte_no_dirty_log() argument
777 _tdp_mmu_set_spte(kvm, iter, new_spte, true, false); in tdp_mmu_set_spte_no_dirty_log()
1062 u64 new_spte; in tdp_mmu_map_handle_target_level() local
1070 new_spte = make_mmio_spte(vcpu, iter->gfn, ACC_ALL); in tdp_mmu_map_handle_target_level()
1074 fault->map_writable, &new_spte); in tdp_mmu_map_handle_target_level()
1076 if (new_spte == iter->old_spte) in tdp_mmu_map_handle_target_level()
1078 else if (tdp_mmu_set_spte_atomic(vcpu->kvm, iter, new_spte)) in tdp_mmu_map_handle_target_level()
1095 if (unlikely(is_mmio_spte(new_spte))) { in tdp_mmu_map_handle_target_level()
1098 new_spte); in tdp_mmu_map_handle_target_level()
1269 u64 new_spte = 0; in age_gfn_range() local
1275 new_spte = iter->old_spte; in age_gfn_range()
1277 if (spte_ad_enabled(new_spte)) { in age_gfn_range()
1278 new_spte &= ~shadow_accessed_mask; in age_gfn_range()
1284 if (is_writable_pte(new_spte)) in age_gfn_range()
1285 kvm_set_pfn_dirty(spte_to_pfn(new_spte)); in age_gfn_range()
1287 new_spte = mark_spte_for_access_track(new_spte); in age_gfn_range()
1290 tdp_mmu_set_spte_no_acc_track(kvm, iter, new_spte); in age_gfn_range()
1314 u64 new_spte; in set_spte_gfn() local
1332 new_spte = kvm_mmu_changed_pte_notifier_make_spte(iter->old_spte, in set_spte_gfn()
1335 tdp_mmu_set_spte(kvm, iter, new_spte); in set_spte_gfn()
1366 u64 new_spte; in wrprot_gfn_range() local
1383 new_spte = iter.old_spte & ~PT_WRITABLE_MASK; in wrprot_gfn_range()
1385 if (tdp_mmu_set_spte_atomic(kvm, &iter, new_spte)) in wrprot_gfn_range()
1611 u64 new_spte; in clear_dirty_gfn_range() local
1626 new_spte = iter.old_spte & ~PT_WRITABLE_MASK; in clear_dirty_gfn_range()
1631 new_spte = iter.old_spte & ~shadow_dirty_mask; in clear_dirty_gfn_range()
1636 if (tdp_mmu_set_spte_atomic(kvm, &iter, new_spte)) in clear_dirty_gfn_range()
1679 u64 new_spte; in clear_dirty_pt_masked() local
1696 new_spte = iter.old_spte & ~PT_WRITABLE_MASK; in clear_dirty_pt_masked()
1701 new_spte = iter.old_spte & ~shadow_dirty_mask; in clear_dirty_pt_masked()
1706 tdp_mmu_set_spte_no_dirty_log(kvm, &iter, new_spte); in clear_dirty_pt_masked()
1806 u64 new_spte; in write_protect_gfn() local
1818 new_spte = iter.old_spte & in write_protect_gfn()
1821 if (new_spte == iter.old_spte) in write_protect_gfn()
1824 tdp_mmu_set_spte(kvm, &iter, new_spte); in write_protect_gfn()