Subject: Re: [PATCH v2 1/3] powerpc/64s/radix: fix preempt imbalance in TLB flush

From: "Aneesh Kumar K.V" <[email-masked]>
Date: Thu, 26 Oct 2017 12:22:29 +0530

Nicholas Piggin <[email-masked]> writes:

Reviewed-by: Aneesh Kumar K.V <[email-masked]>

> Signed-off-by: Nicholas Piggin <[email-masked]>
> ---
>  arch/powerpc/mm/tlb-radix.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/mm/tlb-radix.c b/arch/powerpc/mm/tlb-radix.c
> index 3a07d7a5e2fe..892544ebc2d2 100644
> --- a/arch/powerpc/mm/tlb-radix.c
> +++ b/arch/powerpc/mm/tlb-radix.c
> @@ -358,7 +358,7 @@ void radix__flush_tlb_collapsed_pmd(struct mm_struct *mm, unsigned long addr)
>  	unsigned long ap = mmu_get_ap(mmu_virtual_psize);
>  	unsigned long pid, end;
>
> -
> +	preempt_disable();
>  	pid = mm->context.id;
>  	if (unlikely(pid == MMU_NO_CONTEXT))
>  		goto no_context;
> @@ -366,6 +366,7 @@ void radix__flush_tlb_collapsed_pmd(struct mm_struct *mm, unsigned long addr)
>  	/* 4k page size, just blow the world */
>  	if (PAGE_SIZE == 0x1000) {
>  		radix__flush_all_mm(mm);
> +		preempt_enable();
>  		return;
>  	}
>
> -- 
> 2.13.3