From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Mihai Caraman <mihai.caraman@freescale.com>
Cc: qemu-ppc@nongnu.org, linuxppc-dev@lists.ozlabs.org,
kvm@vger.kernel.org, kvm-ppc@vger.kernel.org
Subject: Re: [RFC PATCH 10/17] PowerPC: booke64: Refactor exception prolog for save/restore regs
Date: Wed, 27 Jun 2012 08:12:46 +1000 [thread overview]
Message-ID: <1340748766.3732.29.camel@pasglop> (raw)
In-Reply-To: <1340627195-11544-11-git-send-email-mihai.caraman@freescale.com>
On Mon, 2012-06-25 at 15:26 +0300, Mihai Caraman wrote:
> Refactor exception prolog to allow save/restore register parameters. Add
> addition none definition for exception prolog usage.
> This is needed for exceptions like Guest Doorbell that use GSRRx regsiters
> which do not map on exception type.
>
> Signed-off-by: Mihai Caraman <mihai.caraman@freescale.com>
> ---
> arch/powerpc/kernel/exceptions-64e.S | 23 ++++++++---------------
> 1 files changed, 8 insertions(+), 15 deletions(-)
>
> diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
> index 7215cc2..52aa96b 100644
> --- a/arch/powerpc/kernel/exceptions-64e.S
> +++ b/arch/powerpc/kernel/exceptions-64e.S
> @@ -35,7 +35,7 @@
> #define SPECIAL_EXC_FRAME_SIZE INT_FRAME_SIZE
>
> /* Exception prolog code for all exceptions */
> -#define EXCEPTION_PROLOG(n, type, addition) \
> +#define EXCEPTION_PROLOG(n, type, srr0, srr1, addition) \
> mtspr SPRN_SPRG_##type##_SCRATCH,r13; /* get spare registers */ \
> mfspr r13,SPRN_SPRG_PACA; /* get PACA */ \
> std r10,PACA_EX##type+EX_R10(r13); \
> @@ -44,54 +44,47 @@
> addition; /* additional code for that exc. */ \
> std r1,PACA_EX##type+EX_R1(r13); /* save old r1 in the PACA */ \
> stw r10,PACA_EX##type+EX_CR(r13); /* save old CR in the PACA */ \
> - mfspr r11,SPRN_##type##_SRR1;/* what are we coming from */ \
> + mfspr r11,srr1;/* what are we coming from */ \
> type##_SET_KSTACK; /* get special stack if necessary */\
> andi. r10,r11,MSR_PR; /* save stack pointer */ \
> beq 1f; /* branch around if supervisor */ \
> ld r1,PACAKSAVE(r13); /* get kernel stack coming from usr */\
> 1: cmpdi cr1,r1,0; /* check if SP makes sense */ \
> bge- cr1,exc_##n##_bad_stack;/* bad stack (TODO: out of line) */ \
> - mfspr r10,SPRN_##type##_SRR0; /* read SRR0 before touching stack */
> + mfspr r10,srr0; /* read SRR0 before touching stack */
No, use the existing macro, use a ##type## specific to guest doorbells,
with appropriate definitions of the corresponding SPRN_ macros.
Cheers,
Ben.
next prev parent reply other threads:[~2012-06-26 22:13 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-25 12:26 [RFC PATCH 00/17] KVM: PPC: 64-bit Book3E support Mihai Caraman
2012-06-25 12:26 ` [RFC PATCH 01/17] KVM: PPC64: booke: Set interrupt computation mode for 64-bit host Mihai Caraman
2012-07-04 13:22 ` Alexander Graf
2012-06-25 12:26 ` [RFC PATCH 02/17] KVM: PPC64: booke: Add EPCR support in mtspr/mfspr emulation Mihai Caraman
2012-07-04 13:21 ` Alexander Graf
2012-07-04 14:14 ` Caraman Mihai Claudiu-B02008
2012-07-04 14:53 ` Alexander Graf
2012-06-25 12:26 ` [RFC PATCH 03/17] KVM: PPC64: booke: Add EPCR support in sregs Mihai Caraman
2012-06-25 12:59 ` Avi Kivity
2012-06-25 13:24 ` Caraman Mihai Claudiu-B02008
2012-06-25 13:36 ` Avi Kivity
2012-06-26 22:34 ` Scott Wood
2012-06-27 11:41 ` Caraman Mihai Claudiu-B02008
2012-06-27 15:23 ` Scott Wood
2012-07-04 13:33 ` [Qemu-ppc] " Alexander Graf
2012-07-05 11:49 ` Caraman Mihai Claudiu-B02008
2012-07-05 12:12 ` Alexander Graf
2012-07-05 12:54 ` Caraman Mihai Claudiu-B02008
2012-07-11 18:07 ` Alexander Graf
2012-06-25 12:26 ` [RFC PATCH 04/17] KVM: PPC64: booke: Add guest computation mode for irq delivery Mihai Caraman
2012-07-04 13:40 ` [Qemu-ppc] " Alexander Graf
2012-07-05 9:28 ` Caraman Mihai Claudiu-B02008
2012-07-05 23:51 ` Scott Wood
2012-07-06 7:03 ` Alexander Graf
2012-06-25 12:26 ` [RFC PATCH 05/17] KVM: PPC: booke: Extend MAS2 EPN mask for 64-bit Mihai Caraman
2012-07-04 13:49 ` [Qemu-ppc] " Alexander Graf
2012-07-05 11:14 ` Caraman Mihai Claudiu-B02008
2012-10-08 10:10 ` Alexander Graf
2012-10-08 13:06 ` Caraman Mihai Claudiu-B02008
2012-10-08 13:10 ` Alexander Graf
2012-06-25 12:26 ` [RFC PATCH 06/17] KVM: PPC: e500: Add emulation helper for getting instruction ea Mihai Caraman
2012-07-04 13:56 ` Alexander Graf
2012-07-05 11:39 ` Caraman Mihai Claudiu-B02008
2012-07-11 17:53 ` Alexander Graf
2012-06-25 12:26 ` [RFC PATCH 07/17] KVM: PPC: e500: Mask ea's high 32-bits in 32/64 instr emulation Mihai Caraman
2012-07-04 14:00 ` [Qemu-ppc] " Alexander Graf
2012-07-04 14:05 ` Alexander Graf
2012-06-25 12:26 ` [RFC PATCH 08/17] KVM: PPC: e500mc: Fix tlbilx emulation for 64-bit guests Mihai Caraman
2012-07-06 14:54 ` Alexander Graf
2012-06-25 12:26 ` [RFC PATCH 09/17] KVM: PPC64: booke: Hard disable interrupts when entering guest Mihai Caraman
2012-07-04 14:14 ` [Qemu-ppc] " Alexander Graf
2012-07-04 22:21 ` Benjamin Herrenschmidt
2012-07-06 23:03 ` Caraman Mihai Claudiu-B02008
2012-06-25 12:26 ` [RFC PATCH 10/17] PowerPC: booke64: Refactor exception prolog for save/restore regs Mihai Caraman
2012-06-26 22:12 ` Benjamin Herrenschmidt [this message]
2012-06-27 11:49 ` Caraman Mihai Claudiu-B02008
2012-06-25 12:26 ` [RFC PATCH 11/17] PowerPC: booke64: Fix machine check handler to use the right prolog Mihai Caraman
2012-06-26 22:13 ` Benjamin Herrenschmidt
2012-06-25 12:26 ` [RFC PATCH 12/17] PowerPC: booke64: Add DO_KVM kernel hooks Mihai Caraman
2012-07-04 14:29 ` [Qemu-ppc] " Alexander Graf
2012-07-04 15:27 ` Caraman Mihai Claudiu-B02008
2012-07-04 15:45 ` Alexander Graf
2012-07-04 18:15 ` Caraman Mihai Claudiu-B02008
2012-07-06 0:19 ` Scott Wood
2012-07-04 22:25 ` Benjamin Herrenschmidt
2012-07-06 22:33 ` Caraman Mihai Claudiu-B02008
2012-07-06 23:11 ` Alexander Graf
2012-07-07 8:39 ` Caraman Mihai Claudiu-B02008
2012-07-11 22:25 ` Alexander Graf
2012-07-11 22:28 ` Benjamin Herrenschmidt
2012-07-11 22:35 ` Alexander Graf
2012-07-11 22:43 ` Benjamin Herrenschmidt
2012-07-11 22:51 ` Alexander Graf
2012-06-25 12:26 ` [RFC PATCH 13/17] PowerPC: booke64: Use SPRG0/3 scratch for bolted TLB miss & crit int Mihai Caraman
2012-06-26 22:16 ` Benjamin Herrenschmidt
2012-07-05 15:51 ` Caraman Mihai Claudiu-B02008
2012-06-26 22:24 ` Scott Wood
2012-06-25 12:26 ` [RFC PATCH 14/17] KVM: PPC32: bookehv: Remove GET_VCPU macro from exception handler Mihai Caraman
2012-06-25 12:26 ` [RFC PATCH 15/17] KVM: PPC64: bookehv: Add support for interrupt handling Mihai Caraman
2012-07-04 15:13 ` [Qemu-ppc] " Alexander Graf
2012-07-04 15:37 ` Caraman Mihai Claudiu-B02008
2012-07-04 15:46 ` Alexander Graf
2012-07-04 18:21 ` Caraman Mihai Claudiu-B02008
2012-06-25 12:26 ` [RFC PATCH 16/17] KVM: PPC: e500: Silence bogus GCC warning in tlb code Mihai Caraman
2012-06-25 12:26 ` [RFC PATCH 17/17] KVM: PPC: booke: Fix get_tb() compile error on 64-bit Mihai Caraman
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=1340748766.3732.29.camel@pasglop \
--to=benh@kernel.crashing.org \
--cc=kvm-ppc@vger.kernel.org \
--cc=kvm@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mihai.caraman@freescale.com \
--cc=qemu-ppc@nongnu.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;
as well as URLs for NNTP newsgroup(s).