Re: [PATCH v2] powerpc/tm: Print 64-bits MSR
From: Christophe LEROY <hidden>
Date: 2018-08-07 17:15:20
Le 07/08/2018 à 15:35, Breno Leitao a écrit :
On a kernel TM Bad thing program exception, the Machine State Register (MSR) is not being properly displayed. The exception code dumps a 32-bits value but MSR is a 64 bits register for all platforms that have HTM enabled. This patch dumps the MSR value as a 64-bits value instead of 32 bits. In order to do so, the 'reason' variable could not be used, since it trimmed MSR to 32-bits (int).
reason is not always regs->msr, see get_reason(), allthough in your case it is. I think it would be better to change 'reason' to 'unsigned long' instead of replacing it by regs->msr for the printk. Christophe
quoted hunk ↗ jump to hunk
Signed-off-by: Breno Leitao <leitao@debian.org> --- arch/powerpc/kernel/traps.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c index 0e17dcb48720..cd561fd89532 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c@@ -1402,7 +1402,7 @@ void program_check_exception(struct pt_regs *regs) goto bail; } else { printk(KERN_EMERG "Unexpected TM Bad Thing exception " - "at %lx (msr 0x%x)\n", regs->nip, reason); + "at %lx (msr 0x%lx)\n", regs->nip, regs->msr); die("Unrecoverable exception", regs, SIGABRT); } }