All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicholas Piggin <npiggin@gmail.com>
To: linuxppc-dev@lists.ozlabs.org
Cc: Nicholas Piggin <npiggin@gmail.com>
Subject: [PATCH 20/28] powerpc/64s/exception: remove __BRANCH_TO_KVM
Date: Wed, 12 Jun 2019 00:30:32 +1000	[thread overview]
Message-ID: <20190611143040.7834-21-npiggin@gmail.com> (raw)
In-Reply-To: <20190611143040.7834-1-npiggin@gmail.com>

No generated code change.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
 arch/powerpc/kernel/exceptions-64s.S | 43 ++++++++++++----------------
 1 file changed, 18 insertions(+), 25 deletions(-)

diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
index 013abf3ea6f6..8a65ae64ed54 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -243,29 +243,6 @@ END_FTR_SECTION_NESTED(ftr,ftr,943)
 #endif
 
 #ifdef CONFIG_KVM_BOOK3S_64_HANDLER
-
-#ifdef CONFIG_RELOCATABLE
-/*
- * KVM requires __LOAD_FAR_HANDLER.
- *
- * __BRANCH_TO_KVM_EXIT branches are also a special case because they
- * explicitly use r9 then reload it from PACA before branching. Hence
- * the double-underscore.
- */
-#define __BRANCH_TO_KVM_EXIT(area, label)				\
-	mfctr	r9;							\
-	std	r9,HSTATE_SCRATCH1(r13);				\
-	__LOAD_FAR_HANDLER(r9, label);					\
-	mtctr	r9;							\
-	ld	r9,area+EX_R9(r13);					\
-	bctr
-
-#else
-#define __BRANCH_TO_KVM_EXIT(area, label)				\
-	ld	r9,area+EX_R9(r13);					\
-	b	label
-#endif
-
 #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
 /*
  * If hv is possible, interrupts come into to the hv version
@@ -311,8 +288,24 @@ END_FTR_SECTION_NESTED(ftr,ftr,943)
 	.else
 	ori	r12,r12,(\n)
 	.endif
-	/* This reloads r9 before branching to kvmppc_interrupt */
-	__BRANCH_TO_KVM_EXIT(\area, kvmppc_interrupt)
+
+#ifdef CONFIG_RELOCATABLE
+	/*
+	 * KVM requires __LOAD_FAR_HANDLER beause kvmppc_interrupt lives
+	 * outside the head section. CONFIG_RELOCATABLE KVM expects CTR
+	 * to be saved in HSTATE_SCRATCH1.
+	 */
+	mfctr	r9
+	std	r9,HSTATE_SCRATCH1(r13)
+	__LOAD_FAR_HANDLER(r9, kvmppc_interrupt)
+	mtctr	r9
+	ld	r9,\area+EX_R9(r13)
+	bctr
+#else
+	ld	r9,\area+EX_R9(r13)
+	b	kvmppc_interrupt
+#endif
+
 
 	.if \skip
 89:	mtocrf	0x80,r9
-- 
2.20.1


  parent reply	other threads:[~2019-06-11 15:34 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-11 14:30 [PATCH 00/28] powerpc/64s interrupt handler cleanups, gasification Nicholas Piggin
2019-06-11 14:30 ` [PATCH 01/28] powerpc/64s/exception: fix line wrap and semicolon inconsistencies in macros Nicholas Piggin
2019-07-04 15:52   ` Michael Ellerman
2019-06-11 14:30 ` [PATCH 02/28] powerpc/64s/exception: remove H concatenation for EXC_HV variants Nicholas Piggin
2019-06-11 14:30 ` [PATCH 03/28] powerpc/64s/exception: consolidate EXCEPTION_PROLOG_2 with _NORI variant Nicholas Piggin
2019-06-11 14:30 ` [PATCH 04/28] powerpc/64s/exception: move and tidy EXCEPTION_PROLOG_2 variants Nicholas Piggin
2019-06-11 14:30 ` [PATCH 05/28] powerpc/64s/exception: fix sreset KVM test code Nicholas Piggin
2019-06-11 14:30 ` [PATCH 06/28] powerpc/64s/exception: remove the "extra" macro parameter Nicholas Piggin
2019-06-19  8:40   ` Nicholas Piggin
2019-06-19 10:02     ` Michael Ellerman
2019-06-11 14:30 ` [PATCH 07/28] powerpc/64s/exception: consolidate maskable and non-maskable prologs Nicholas Piggin
2019-06-11 14:30 ` [PATCH 08/28] powerpc/64s/exception: merge KVM handler and skip variants Nicholas Piggin
2019-06-11 14:30 ` [PATCH 09/28] powerpc/64s/exception: KVM handler can set the HSRR trap bit Nicholas Piggin
2019-06-11 14:30 ` [PATCH 10/28] powerpc/64s/exception: Make EXCEPTION_PROLOG_0 a gas macro for consistency with others Nicholas Piggin
2019-06-11 14:30 ` [PATCH 11/28] powerpc/64s/exception: Move EXCEPTION_COMMON handler and return branches into callers Nicholas Piggin
2019-06-11 14:30 ` [PATCH 12/28] powerpc/64s/exception: Move EXCEPTION_COMMON additions " Nicholas Piggin
2019-06-11 14:30 ` [PATCH 13/28] powerpc/64s/exception: unwind exception-64s.h macros Nicholas Piggin
2019-06-11 14:30 ` [PATCH 14/28] powerpc/64s/exception: improve 0x500 handler code Nicholas Piggin
2019-06-11 14:30 ` [PATCH 15/28] powerpc/64s/exception: move EXCEPTION_PROLOG_2* to a more logical place Nicholas Piggin
2019-06-11 14:30 ` [PATCH 16/28] powerpc/64s/exception: remove STD_EXCEPTION_COMMON variants Nicholas Piggin
2019-06-11 14:30 ` [PATCH 17/28] powerpc/64s/exception: move KVM related code together Nicholas Piggin
2019-06-11 14:30 ` [PATCH 18/28] powerpc/64s/exception: move exception-64s.h code to exception-64s.S where it is used Nicholas Piggin
2019-06-11 14:30 ` [PATCH 19/28] powerpc/64s/exception: move head-64.h " Nicholas Piggin
2019-06-11 14:30 ` Nicholas Piggin [this message]
2019-06-11 14:30 ` [PATCH 21/28] powerpc/64s/exception: use a gas macro for system call handler code Nicholas Piggin
2019-06-11 14:30 ` [PATCH 22/28] powerpc/64s/exception: fix indenting irregularities Nicholas Piggin
2019-06-11 14:30 ` [PATCH 23/28] powerpc/64s/exception: generate regs clear instructions using .rept Nicholas Piggin
2019-06-11 14:30 ` [PATCH 24/28] powerpc/64s/exception: remove bad stack branch Nicholas Piggin
2019-06-11 14:30 ` [PATCH 25/28] powerpc/64s/exception: remove pointless EXCEPTION_PROLOG macro indirection Nicholas Piggin
2019-06-11 14:30 ` [PATCH 26/28] powerpc/64s/exception: move paca save area offsets into exception-64s.S Nicholas Piggin
2019-06-11 14:30 ` [PATCH 27/28] powerpc/64s/exception: clean up system call entry Nicholas Piggin
2019-06-11 14:30 ` [PATCH 28/28] powerpc/64s/exception: avoid SPR RAW scoreboard stall in real mode entry 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=20190611143040.7834-21-npiggin@gmail.com \
    --to=npiggin@gmail.com \
    --cc=linuxppc-dev@lists.ozlabs.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.