From: Nitin Gupta Date: Mon, 3 Apr 2017 22:32:28 +0000 (-0700) Subject: sparc64: Fix memory corruption when THP is enabled X-Git-Tag: v4.1.12-98.0.20170517_2143~33^2~17 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=8cecaafad6fab2bdbb6f1c4df42135e86bf67111;p=users%2Fjedix%2Flinux-maple.git sparc64: Fix memory corruption when THP is enabled The memory corruption was happening due to incorrect TLB/TSB flushing of hugepages. Orabug: 25704426 Reported-by: David S. Miller Signed-off-by: Nitin Gupta Signed-off-by: Allen Pais --- diff --git a/arch/sparc/mm/tsb.c b/arch/sparc/mm/tsb.c index b5d829afbda6..87c39fdd00ae 100644 --- a/arch/sparc/mm/tsb.c +++ b/arch/sparc/mm/tsb.c @@ -121,7 +121,7 @@ void flush_tsb_user(struct tlb_batch *tb) spin_lock_irqsave(&mm->context.lock, flags); - if (tb->hugepage_shift < HPAGE_SHIFT) { + if (tb->hugepage_shift < REAL_HPAGE_SHIFT) { base = (unsigned long) mm->context.tsb_block[MM_TSB_BASE].tsb; nentries = mm->context.tsb_block[MM_TSB_BASE].tsb_nentries; if (tlb_type == cheetah_plus || tlb_type == hypervisor) @@ -154,7 +154,7 @@ void flush_tsb_user_page(struct mm_struct *mm, unsigned long vaddr, spin_lock_irqsave(&mm->context.lock, flags); - if (hugepage_shift < HPAGE_SHIFT) { + if (hugepage_shift < REAL_HPAGE_SHIFT) { base = (unsigned long) mm->context.tsb_block[MM_TSB_BASE].tsb; nentries = mm->context.tsb_block[MM_TSB_BASE].tsb_nentries; if (tlb_type == cheetah_plus || tlb_type == hypervisor)