[PATCH 9/9] arm64: Use arm64_force_sig_info instead of force_sig_info

Mark Rutland mark.rutland at arm.com
Thu Feb 22 08:59:08 PST 2018


On Thu, Feb 22, 2018 at 04:58:05PM +0000, Will Deacon wrote:
> On Thu, Feb 22, 2018 at 03:48:21PM +0000, Mark Rutland wrote:
> > On Thu, Feb 22, 2018 at 02:00:57PM +0000, Will Deacon wrote:
> > > Using arm64_force_sig_info means that printing messages about unhandled
> > > signals is dealt with for us, so use that in preference to force_sig_info
> > > and remove any homebrew printing code.
> > > 
> > > Signed-off-by: Will Deacon <will.deacon at arm.com>
> > > ---
> > >  arch/arm64/kernel/debug-monitors.c | 3 ++-
> > >  arch/arm64/kernel/ptrace.c         | 2 +-
> > >  arch/arm64/kernel/traps.c          | 9 ++-------
> > >  3 files changed, 5 insertions(+), 9 deletions(-)
> 
> [...]
> 
> > > diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c
> > > index 4231488a5a9f..cb5ad77524f3 100644
> > > --- a/arch/arm64/kernel/traps.c
> > > +++ b/arch/arm64/kernel/traps.c
> > > @@ -633,11 +633,6 @@ asmlinkage void bad_el0_sync(struct pt_regs *regs, int reason, unsigned int esr)
> > >  {
> > >  	siginfo_t info;
> > >  	void __user *pc = (void __user *)instruction_pointer(regs);
> > > -	console_verbose();
> > > -
> > > -	pr_crit("Bad EL0 synchronous exception detected on CPU%d, code 0x%08x -- %s\n",
> > > -		smp_processor_id(), esr, esr_get_class_string(esr));
> > > -	__show_regs(regs);
> > 
> > Here we dump the CPU so that a developer can figure out which
> > microarchitecture the exception was taken on (e.g. to allow them to
> > decode an IMP DEF SError). We added that in commit:
> > 
> >   8051f4d16ef1d037 ("arm64: report CPU number in bad_mode")
> > 
> > However, in arm64_force_sig_info() we don't dump the CPU, and I guess
> > that may be preemptible in cases other than bad_el0_sync().
> 
> __show_regs prints the CPU number already. If we're preemptible, then it
> could be inaccurate.

Ah, that'll do. :)

Mark.



More information about the linux-arm-kernel mailing list