> From: Jan Beulich <[email protected]>
> Sent: Wednesday, December 1, 2021 12:11 AM
> 
> ept_free_entry() gets called after a flush - if one is necessary in the
> first place - was already issued. 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 <[email protected]>

Reviewed-by: Kevin Tian <[email protected]>

> 
> --- 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_do
>              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)));
>  }
> 

Reply via email to