Re: [PATCH v2] powerpc/tm: Print 64-bits MSR
From: LEROY Christophe <hidden>
Date: 2018-08-07 18:57:22
Breno Leitao [off-list ref] a =C3=A9crit=C2=A0:
Hi, On 08/07/2018 02:15 PM, Christophe LEROY wrote:quoted
Le 07/08/2018 =C3=A0 15:35, Breno Leitao a =C3=A9crit=C2=A0:quoted
On a kernel TM Bad thing program exception, the Machine State Register (MSR) is not being properly displayed. The exception code dumps a 32-bi=
ts
quoted
quoted
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. I=
n
quoted
quoted
order to do so, the 'reason' variable could not be used, since it trimm=
ed
quoted
quoted
MSR to 32-bits (int).reason is not always regs->msr, see get_reason(), allthough in your=20=
=20
quoted
=20case it is. I think it would be better to change 'reason' to 'unsigned long' instead=
of
quoted
replacing it by regs->msr for the printk.That was my initial approach, but this code seems to run on 32 bits syste=
m,
and I do not want to change the whole 'reason' bit width without having a=
32
bits to test, at least.
But 'unsigned long' is still 32 bits on ppc32, so it makes no=20=20 difference=20with 'unsigned int' And I will test it for you if needed Christophe
Also, it is a bit weird doing something as:
printk("....(msr 0x%lx)....", reason);
I personally think that the follow code is much more readable:
printk(".... (msr 0x%lx)...", regs->msr);