Commit f03440ac authored by Paolo Bonzini's avatar Paolo Bonzini Committed by Yu Zhang
Browse files

KVM: MIPS: defer flush to generic MMU notifier code

mainline inclusion
from mainline-v5.13-rc1
commit fe9a5b05
category: feature
bugzilla: https://gitee.com/openeuler/intel-kernel/issues/I7S3VQ
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fe9a5b055116dff7fcee081abc2def4b14d24c21



----------------------------------------------------------------------

Return 1 from kvm_unmap_hva_range and kvm_set_spte_hva if a flush is
needed, so that the generic code can coalesce the flushes.

Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Signed-off-by: default avatarYu Zhang <yu.c.zhang@linux.intel.com>
parent d42a2911
Loading
Loading
Loading
Loading
+2 −9
Original line number Diff line number Diff line
@@ -488,9 +488,7 @@ static int kvm_unmap_hva_handler(struct kvm *kvm, gfn_t gfn, gfn_t gfn_end,
int kvm_unmap_hva_range(struct kvm *kvm, unsigned long start, unsigned long end,
			unsigned flags)
{
	handle_hva_to_gpa(kvm, start, end, &kvm_unmap_hva_handler, NULL);
	kvm_flush_remote_tlbs(kvm);
	return 0;
	return handle_hva_to_gpa(kvm, start, end, &kvm_unmap_hva_handler, NULL);
}

static int kvm_set_spte_handler(struct kvm *kvm, gfn_t gfn, gfn_t gfn_end,
@@ -527,12 +525,7 @@ static int kvm_set_spte_handler(struct kvm *kvm, gfn_t gfn, gfn_t gfn_end,
int kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte)
{
	unsigned long end = hva + PAGE_SIZE;
	int ret;

	ret = handle_hva_to_gpa(kvm, hva, end, &kvm_set_spte_handler, &pte);
	if (ret)
		kvm_flush_remote_tlbs(kvm);
	return 0;
	return handle_hva_to_gpa(kvm, hva, end, &kvm_set_spte_handler, &pte);
}

static int kvm_age_hva_handler(struct kvm *kvm, gfn_t gfn, gfn_t gfn_end,