OSDN Git Service

powerpc/64s/exception: machine check use correct cfar for late handler
authorNicholas Piggin <npiggin@gmail.com>
Fri, 2 Aug 2019 10:56:32 +0000 (20:56 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 7 Oct 2019 19:01:01 +0000 (21:01 +0200)
commit90666ada1a8148ebe4a6ebef1e3a57f3607c1479
treeaff5535197c22de657052ab83e21de0c8c7197ec
parent95fed5c9b1cebc3a82095253a7b4fed6939b165c
powerpc/64s/exception: machine check use correct cfar for late handler

[ Upstream commit 0b66370c61fcf5fcc1d6901013e110284da6e2bb ]

Bare metal machine checks run an "early" handler in real mode before
running the main handler which reports the event.

The main handler runs exactly as a normal interrupt handler, after the
"windup" which sets registers back as they were at interrupt entry.
CFAR does not get restored by the windup code, so that will be wrong
when the handler is run.

Restore the CFAR to the saved value before running the late handler.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20190802105709.27696-8-npiggin@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/powerpc/kernel/exceptions-64s.S