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

From: Christophe Leroy
Date: Thu Apr 22 2021 - 11:29:54 EST




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

return true;
default:
return false;