From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Nicholas Piggin <npiggin@gmail.com>,
Michael Ellerman <mpe@ellerman.id.au>,
Sasha Levin <sashal@kernel.org>,
linuxppc-dev@lists.ozlabs.org
Subject: [PATCH AUTOSEL 4.9 15/19] powerpc/64s/exception: machine check use correct cfar for late handler
Date: Tue, 24 Sep 2019 12:51:26 -0400 [thread overview]
Message-ID: <20190924165130.28625-15-sashal@kernel.org> (raw)
In-Reply-To: <20190924165130.28625-1-sashal@kernel.org>
From: Nicholas Piggin <npiggin@gmail.com>
[ 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 | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
index 92474227262b4..0c8b966e80702 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -467,6 +467,10 @@ EXC_COMMON_BEGIN(machine_check_handle_early)
RFI_TO_USER_OR_KERNEL
9:
/* Deliver the machine check to host kernel in V mode. */
+BEGIN_FTR_SECTION
+ ld r10,ORIG_GPR3(r1)
+ mtspr SPRN_CFAR,r10
+END_FTR_SECTION_IFSET(CPU_FTR_CFAR)
MACHINE_CHECK_HANDLER_WINDUP
b machine_check_pSeries
--
2.20.1
next prev parent reply other threads:[~2019-09-24 16:53 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-24 16:51 [PATCH AUTOSEL 4.9 01/19] drm/bridge: tc358767: Increase AUX transfer length limit Sasha Levin
2019-09-24 16:51 ` [PATCH AUTOSEL 4.9 02/19] video: ssd1307fb: Start page range at page_offset Sasha Levin
2019-09-24 16:51 ` [PATCH AUTOSEL 4.9 03/19] drm/radeon: Fix EEH during kexec Sasha Levin
2019-09-24 16:51 ` [PATCH AUTOSEL 4.9 04/19] gpu: drm: radeon: Fix a possible null-pointer dereference in radeon_connector_set_property() Sasha Levin
2019-09-24 16:51 ` [PATCH AUTOSEL 4.9 05/19] ipmi_si: Only schedule continuously in the thread in maintenance mode Sasha Levin
2019-09-24 16:51 ` [PATCH AUTOSEL 4.9 06/19] clk: qoriq: Fix -Wunused-const-variable Sasha Levin
2019-09-24 16:51 ` [PATCH AUTOSEL 4.9 07/19] drm/amd/powerplay/smu7: enforce minimal VBITimeout (v2) Sasha Levin
2019-09-24 16:51 ` [PATCH AUTOSEL 4.9 08/19] clk: sirf: Don't reference clk_init_data after registration Sasha Levin
2019-09-24 16:51 ` [PATCH AUTOSEL 4.9 09/19] powerpc/rtas: use device model APIs and serialization during LPM Sasha Levin
2019-09-24 16:51 ` [PATCH AUTOSEL 4.9 10/19] powerpc/futex: Fix warning: 'oldval' may be used uninitialized in this function Sasha Levin
2019-09-24 16:51 ` [PATCH AUTOSEL 4.9 11/19] powerpc/pseries/mobility: use cond_resched when updating device tree Sasha Levin
2019-09-24 16:51 ` [PATCH AUTOSEL 4.9 12/19] pinctrl: tegra: Fix write barrier placement in pmx_writel Sasha Levin
2019-09-24 16:51 ` [PATCH AUTOSEL 4.9 13/19] vfio_pci: Restore original state on release Sasha Levin
2019-09-24 16:51 ` [PATCH AUTOSEL 4.9 14/19] drm/amdgpu/si: fix ASIC tests Sasha Levin
2019-09-24 16:51 ` Sasha Levin [this message]
2019-09-24 16:51 ` [PATCH AUTOSEL 4.9 16/19] powerpc/pseries: correctly track irq state in default idle Sasha Levin
2019-09-24 16:51 ` [PATCH AUTOSEL 4.9 17/19] arm64: fix unreachable code issue with cmpxchg Sasha Levin
2019-09-24 16:51 ` [PATCH AUTOSEL 4.9 18/19] clk: at91: select parent if main oscillator or bypass is enabled Sasha Levin
2019-09-24 16:51 ` [PATCH AUTOSEL 4.9 19/19] scsi: core: Reduce memory required for SCSI logging Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190924165130.28625-15-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox