[PATCH] powerpc/64s/radix: fix preempt imbalance in TLB flush
Nicholas Piggin
npiggin at gmail.com
Tue Oct 10 21:16:41 AEDT 2017
Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
---
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 b3e849c4886e..de414460287a 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 ? mm->context.id : 0;
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
More information about the Linuxppc-dev
mailing list