Message ID | 151203273555.16587.12957613472048945542.stgit@jupiter.in.ibm.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 8d81296cfcce89013a714feb8d25004a156f8181 |
Headers | show |
Series | powerpc/radix: Remove trace_tlbie call from radix__flush_tlb_all | expand |
On Thu, Nov 30, 2017 at 8:05 PM, Mahesh J Salgaonkar <mahesh@linux.vnet.ibm.com> wrote: > From: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> > > radix__flush_tlb_all() is called only in kexec path in real mode and any > tracepoints at this stage will make kexec to fail if enabled. > > To verify enable tlbie trace before kexec. > > $ echo 1 > /sys/kernel/debug/tracing/events/powerpc/tlbie/enable > == kexec into new kernel and kexec fails. > > Fix this by not calling trace_tlbie from radix__flush_tlb_all(). > > Fixes: 0428491cba92 ("powerpc/mm: Trace tlbie(l) instructions") > Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> > --- Acked-by: Balbir Singh <bsingharora@gmail.com>
On Thu, 2017-11-30 at 09:05:54 UTC, Mahesh J Salgaonkar wrote: > From: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> > > radix__flush_tlb_all() is called only in kexec path in real mode and any > tracepoints at this stage will make kexec to fail if enabled. > > To verify enable tlbie trace before kexec. > > $ echo 1 > /sys/kernel/debug/tracing/events/powerpc/tlbie/enable > == kexec into new kernel and kexec fails. > > Fix this by not calling trace_tlbie from radix__flush_tlb_all(). > > Fixes: 0428491cba92 ("powerpc/mm: Trace tlbie(l) instructions") > Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> > Acked-by: Balbir Singh <bsingharora@gmail.com> Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/8d81296cfcce89013a714feb8d2500 cheers
diff --git a/arch/powerpc/mm/tlb-radix.c b/arch/powerpc/mm/tlb-radix.c index 884f4b7..913a2b8 100644 --- a/arch/powerpc/mm/tlb-radix.c +++ b/arch/powerpc/mm/tlb-radix.c @@ -600,14 +600,12 @@ void radix__flush_tlb_all(void) */ asm volatile(PPC_TLBIE_5(%0, %4, %3, %2, %1) : : "r"(rb), "i"(r), "i"(1), "i"(ric), "r"(rs) : "memory"); - trace_tlbie(0, 0, rb, rs, ric, prs, r); /* * now flush host entires by passing PRS = 0 and LPID == 0 */ asm volatile(PPC_TLBIE_5(%0, %4, %3, %2, %1) : : "r"(rb), "i"(r), "i"(prs), "i"(ric), "r"(0) : "memory"); asm volatile("eieio; tlbsync; ptesync": : :"memory"); - trace_tlbie(0, 0, rb, 0, ric, prs, r); } void radix__flush_tlb_pte_p9_dd1(unsigned long old_pte, struct mm_struct *mm,