On Tue, 2020-08-18 at 17:19 +0000, Christophe Leroy wrote: > The logging of bad frame appears half a dozen of times > and is pretty similar. [] > diff --git a/arch/powerpc/kernel/signal.c b/arch/powerpc/kernel/signal.c [] > @@ -355,3 +355,14 @@ static unsigned long get_tm_stackpointer(struct > task_struct *tsk) > #endif > return ret; > } > + > +static const char fm32[] = KERN_INFO "%s[%d]: bad frame in %s: %p nip %08lx > lr %08lx\n"; > +static const char fm64[] = KERN_INFO "%s[%d]: bad frame in %s: %p nip %016lx > lr %016lx\n";
Why not remove this and use it in place with %08lx/%016x used as %px with a case to (void *)? > +void signal_fault(struct task_struct *tsk, struct pt_regs *regs, > + const char *where, void __user *ptr) > +{ > + if (show_unhandled_signals) > + printk_ratelimited(regs->msr & MSR_64BIT ? fm64 : fm32, > tsk->comm, > + task_pid_nr(tsk), where, ptr, regs->nip, > regs->link); pr_info_ratelimited("%s[%d]: bad frame in %s: %p nip %016lx lr %016lx\n", tsk->comm, task_pid_nr(tsk), where, ptr, (void *)regs->nip, (void *)regs->link);