From: Jan Beulich Date: Tue, 4 Jan 2022 09:13:06 +0000 (+0100) Subject: x86/EPT: squash meaningless TLB flush X-Git-Tag: archive/raspbian/4.17.0-1+rpi1^2~33^2~1177 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=4a59e6bb3a96f5ebca95d162b2a81b3e68b076a2;p=xen.git x86/EPT: squash meaningless TLB flush 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 --- 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))); }