[RESEND PATCH v3 2/2] powernv: Fix MCE handler to avoid trashing CR0/CR1 registers.
Mahesh Jagannath Salgaonkar
mahesh at linux.vnet.ibm.com
Mon Aug 8 19:17:41 AEST 2016
On 08/08/2016 02:28 PM, Michael Ellerman wrote:
> Mahesh J Salgaonkar <mahesh at linux.vnet.ibm.com> writes:
>> From: Mahesh Salgaonkar <mahesh at linux.vnet.ibm.com>
>> The current implementation of MCE early handling modifies CR0/1 registers
>> without saving its old values. Fix this by moving early check for
>> powersaving mode to machine_check_handle_early().
>> The power architecture 2.06 or later allows the possibility of getting
>> machine check while in nap/sleep/winkle. The last bit of HSPRG0 is set
>> to 1, if thread is woken up from winkle. Hence, clear the last bit of
>> HSPRG0 (r13) before MCE handler starts using it as paca pointer.
>> Also, the current code always puts the thread into nap state irrespective
>> of whatever idle state it woke up from. Fix that by looking at
>> paca->thread_idle_state and put the thread back into same state where it
>> came from.
>> Cc: stable at vger.kernel.org
> The information I need is "which commit introduced the bug".
It fixes commit 1c51089: powerpc/book3s: Return from interrupt if coming
from evil context.
> Given that I can work out which stable releases we should backport the
> patch to.
It will need an backport to stable once it hits upstream.
More information about the Linuxppc-dev