diff options
Diffstat (limited to 'virt/kvm/kvm_main.c')
| -rw-r--r-- | virt/kvm/kvm_main.c | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index b299c0366320..5ce91254a793 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -461,12 +461,17 @@ static void kvm_mmu_notifier_change_pte(struct mmu_notifier *mn,  	trace_kvm_set_spte_hva(address); +	/* +	 * .change_pte() must be surrounded by .invalidate_range_{start,end}(), +	 * and so always runs with an elevated notifier count.  This obviates +	 * the need to bump the sequence count. +	 */ +	WARN_ON_ONCE(!kvm->mmu_notifier_count); +  	idx = srcu_read_lock(&kvm->srcu);  	KVM_MMU_LOCK(kvm); -	kvm->mmu_notifier_seq++; -  	if (kvm_set_spte_hva(kvm, address, pte))  		kvm_flush_remote_tlbs(kvm); |