Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7ad9de6a authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

x86: CPA avoid repeated lazy mmu flush



Impact: Flush the lazy MMU only once

Pending mmu updates only need to be flushed once to bring the
in-memory pagetable state up to date.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 34b0900d
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -575,14 +575,6 @@ static int __change_page_attr(struct cpa_data *cpa, int primary)
		address = cpa->vaddr[cpa->curpage];
	else
		address = *cpa->vaddr;

	/*
	 * If we're called with lazy mmu updates enabled, the
	 * in-memory pte state may be stale.  Flush pending updates to
	 * bring them up to date.
	 */
	arch_flush_lazy_mmu_mode();

repeat:
	kpte = lookup_address(address, &level);
	if (!kpte)
@@ -819,6 +811,13 @@ static int change_page_attr_set_clr(unsigned long *addr, int numpages,

	vm_unmap_aliases();

	/*
	 * If we're called with lazy mmu updates enabled, the
	 * in-memory pte state may be stale.  Flush pending updates to
	 * bring them up to date.
	 */
	arch_flush_lazy_mmu_mode();

	cpa.vaddr = addr;
	cpa.numpages = numpages;
	cpa.mask_set = mask_set;