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);


Reply via email to