From 4a59e6bb3a96f5ebca95d162b2a81b3e68b076a2 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Tue, 4 Jan 2022 10:13:06 +0100 Subject: [PATCH] x86/EPT: squash meaningless TLB flush MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit ept_free_entry() gets called after a flush was already issued, if one is necessary in the first place. That behavior is similar to NPT, which also doesn't have any further flush in p2m_free_entry(). (Furthermore, the function being recursive, in case of recursiveness way too many flushes would have been issued.) Signed-off-by: Jan Beulich Reviewed-by: Roger Pau Monné Reviewed-by: Kevin Tian --- xen/arch/x86/mm/p2m-ept.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/xen/arch/x86/mm/p2m-ept.c b/xen/arch/x86/mm/p2m-ept.c index a4f5fc4b0d..b7ee441d45 100644 --- a/xen/arch/x86/mm/p2m-ept.c +++ b/xen/arch/x86/mm/p2m-ept.c @@ -246,8 +246,7 @@ static void ept_free_entry(struct p2m_domain *p2m, ept_entry_t *ept_entry, int l ept_free_entry(p2m, epte + i, level - 1); unmap_domain_page(epte); } - - p2m_tlb_flush_sync(p2m); + p2m_free_ptp(p2m, mfn_to_page(_mfn(ept_entry->mfn))); } -- 2.30.2