On 24/11/25 6:52 PM, Kevin Brodsky wrote:
> arch_flush_lazy_mmu_mode() is called when outstanding batched
> pgtable operations must be completed immediately. There should
> however be no need to leave and re-enter lazy MMU completely. The
> only part of that sequence that we really need is xen_mc_flush();
> call it directly.
>
> Reviewed-by: David Hildenbrand <[email protected]>
> Reviewed-by: Ryan Roberts <[email protected]>
> Reviewed-by: Juergen Gross <[email protected]>
> Signed-off-by: Kevin Brodsky <[email protected]>
> ---
Reviewed-by: Anshuman Khandual <[email protected]>
> arch/x86/xen/mmu_pv.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c
> index 2a4a8deaf612..7a35c3393df4 100644
> --- a/arch/x86/xen/mmu_pv.c
> +++ b/arch/x86/xen/mmu_pv.c
> @@ -2139,10 +2139,8 @@ static void xen_flush_lazy_mmu(void)
> {
> preempt_disable();
>
> - if (xen_get_lazy_mode() == XEN_LAZY_MMU) {
> - arch_leave_lazy_mmu_mode();
> - arch_enter_lazy_mmu_mode();
> - }
> + if (xen_get_lazy_mode() == XEN_LAZY_MMU)
> + xen_mc_flush();
>
> preempt_enable();
> }