Re: [PATCH 2/2] powerpc: Print esr register when hitting Program Interrupt

From: Xiongwei Song
Date: Sat Apr 24 2021 - 09:52:04 EST


On Thu, Apr 22, 2021 at 11:29 PM Christophe Leroy
<christophe.leroy@xxxxxxxxxx> wrote:
>
>
>
> Le 22/04/2021 à 17:10, Xiongwei Song a écrit :
> > From: Xiongwei Song <sxwjean@xxxxxxxxx>
> >
> > The esr register has the details of Program Interrupt on BookE/4xx cpus,
> > printing its value is helpful.
> >
> > Signed-off-by: Xiongwei Song <sxwjean@xxxxxxxxx>
> > ---
> > arch/powerpc/kernel/process.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
> > index 5c3830837f3a..664aecf8ee2e 100644
> > --- a/arch/powerpc/kernel/process.c
> > +++ b/arch/powerpc/kernel/process.c
> > @@ -1459,6 +1459,7 @@ static bool interrupt_detail_printable(int trap)
> > case INTERRUPT_MACHINE_CHECK:
> > case INTERRUPT_DATA_STORAGE:
> > case INTERRUPT_ALIGNMENT:
> > + case INTERRUPT_PROGRAM:
>
> With this, it will also print the DSISR on 8xx/6xx so it will print garbage.
>
> 8xx/6xx provide the information in SRR1. If you want to proceed, you have to do the same as in ISI:
> Copy the content of SRR1 into regs->dsisr in the assembly handler in head_book3s_32.S and in the
> instruction TLB error handler in head_8xx.S

Good point.