linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Nicholas Piggin <npiggin@gmail.com>
To: linuxppc-dev@lists.ozlabs.org
Cc: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>,
	Nicholas Piggin <npiggin@gmail.com>,
	Aravinda Prasad <aravinda@linux.vnet.ibm.com>
Subject: [PATCH v2 07/16] powerpc/64s/exception: machine check use correct cfar for late handler
Date: Thu, 11 Jul 2019 01:19:41 +1000	[thread overview]
Message-ID: <20190710151950.31906-8-npiggin@gmail.com> (raw)
In-Reply-To: <20190710151950.31906-1-npiggin@gmail.com>

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>
---
 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 54ca2b189d43..f2c24a4ae723 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -1186,6 +1186,10 @@ FTR_SECTION_ELSE
 ALT_FTR_SECTION_END_IFSET(CPU_FTR_HVMODE)
 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
 	EXCEPTION_PROLOG_0 PACA_EXMC
 	EXCEPTION_PROLOG_1 EXC_STD, PACA_EXMC, 1, 0x200, 1, 1, 0
-- 
2.20.1


  parent reply	other threads:[~2019-07-10 15:47 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-10 15:19 [PATCH v2 00/16] powerpc/64s: machine check cleanup series Nicholas Piggin
2019-07-10 15:19 ` [PATCH v2 01/16] powerpc/64s/exception: machine check fwnmi remove HV case Nicholas Piggin
2019-07-10 15:19 ` [PATCH v2 02/16] powerpc/64s/exception: machine check remove bitrotted comment Nicholas Piggin
2019-07-10 15:19 ` [PATCH v2 03/16] powerpc/64s/exception: machine check fix KVM guest test Nicholas Piggin
2019-07-10 15:19 ` [PATCH v2 04/16] powerpc/64s/exception: machine check adjust RFI target Nicholas Piggin
2019-07-10 15:19 ` [PATCH v2 05/16] powerpc/64s/exception: machine check pseries should always run the early handler Nicholas Piggin
2019-07-10 15:19 ` [PATCH v2 06/16] powerpc/64s/exception: machine check remove machine_check_pSeries_0 branch Nicholas Piggin
2019-07-10 15:19 ` Nicholas Piggin [this message]
2019-07-10 15:19 ` [PATCH v2 08/16] powerpc/64s/powernv: machine check dump SLB contents Nicholas Piggin
2019-07-10 15:19 ` [PATCH v2 09/16] powerpc/64s/pseries: machine check convert to use common event code Nicholas Piggin
2019-07-10 15:19 ` [PATCH v2 10/16] powerpc/64s/exception: machine check pseries should skip the late handler for host kernel MCEs Nicholas Piggin
2019-07-10 15:19 ` [PATCH v2 11/16] powerpc/64s/exception: machine check restructure to reuse common macros Nicholas Piggin
2019-07-10 15:19 ` [PATCH v2 12/16] powerpc/64s/exception: machine check move tramp code Nicholas Piggin
2019-07-10 15:19 ` [PATCH v2 13/16] powerpc/64s/exception: simplify machine check early path Nicholas Piggin
2019-07-10 15:19 ` [PATCH v2 14/16] powerpc/64s/exception: machine check move unrecoverable handling out of line Nicholas Piggin
2019-07-10 15:19 ` [PATCH v2 15/16] powerpc/64s/exception: untangle early machine check handler branch Nicholas Piggin
2019-07-10 15:19 ` [PATCH v2 16/16] powerpc/64s/exception: machine check improve labels and comments Nicholas Piggin

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=20190710151950.31906-8-npiggin@gmail.com \
    --to=npiggin@gmail.com \
    --cc=aravinda@linux.vnet.ibm.com \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mahesh@linux.vnet.ibm.com \
    /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;
as well as URLs for NNTP newsgroup(s).