From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Scott Wood <scottwood@freescale.com>
Cc: linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH 2/2] powerpc/book3e-64: reraise doorbell when masked by soft-irq-disable
Date: Sat, 21 May 2011 08:32:58 +1000 [thread overview]
Message-ID: <1305930778.7481.197.camel@pasglop> (raw)
In-Reply-To: <20110520190047.GB7058@schlenkerla.am.freescale.net>
On Fri, 2011-05-20 at 14:00 -0500, Scott Wood wrote:
> Signed-off-by: Scott Wood <scottwood@freescale.com>
> ---
> arch/powerpc/kernel/exceptions-64e.S | 22 +++++++++++++++++++++-
> 1 files changed, 21 insertions(+), 1 deletions(-)
You can probably remove the doorbell re-check when enabling interrupts
now, can't you ?
Cheers,
Ben.
> diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
> index b60f49e..87ca569 100644
> --- a/arch/powerpc/kernel/exceptions-64e.S
> +++ b/arch/powerpc/kernel/exceptions-64e.S
> @@ -123,6 +123,12 @@
> std r14,PACA_EXMC+EX_R14(r13); \
> std r15,PACA_EXMC+EX_R15(r13)
>
> +#define PROLOG_ADDITION_DOORBELL_GEN \
> + lbz r11,PACASOFTIRQEN(r13); /* are irqs soft-disabled ? */ \
> + cmpwi cr0,r11,0; /* yes -> go out of line */ \
> + beq masked_doorbell_book3e;
> +
> +
> /* Core exception code for all exceptions except TLB misses.
> * XXX: Needs to make SPRN_SPRG_GEN depend on exception type
> */
> @@ -466,7 +472,13 @@ kernel_dbg_exc:
> MASKABLE_EXCEPTION(0x260, perfmon, .performance_monitor_exception, ACK_NONE)
>
> /* Doorbell interrupt */
> - MASKABLE_EXCEPTION(0x2070, doorbell, .doorbell_exception, ACK_NONE)
> + START_EXCEPTION(doorbell)
> + NORMAL_EXCEPTION_PROLOG(0x2070, PROLOG_ADDITION_DOORBELL)
> + EXCEPTION_COMMON(0x2070, PACA_EXGEN, INTS_DISABLE_ALL)
> + CHECK_NAPPING()
> + addi r3,r1,STACK_FRAME_OVERHEAD
> + bl .doorbell_exception
> + b .ret_from_except_lite;
>
> /* Doorbell critical Interrupt */
> START_EXCEPTION(doorbell_crit);
> @@ -521,8 +533,16 @@ kernel_dbg_exc:
> * An interrupt came in while soft-disabled; clear EE in SRR1,
> * clear paca->hard_enabled and return.
> */
> +masked_doorbell_book3e:
> + mtcr r10
> + /* Resend the doorbell to fire again when ints enabled */
> + mfspr r10,SPRN_PIR
> + PPC_MSGSND(r10)
> + b masked_interrupt_book3e_common
> +
> masked_interrupt_book3e:
> mtcr r10
> +masked_interrupt_book3e_common:
> stb r11,PACAHARDIRQEN(r13)
> mfspr r10,SPRN_SRR1
> rldicl r11,r10,48,1 /* clear MSR_EE */
next prev parent reply other threads:[~2011-05-20 22:33 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-20 19:00 [PATCH 2/2] powerpc/book3e-64: reraise doorbell when masked by soft-irq-disable Scott Wood
2011-05-20 22:32 ` Benjamin Herrenschmidt [this message]
2011-05-23 20:26 ` Scott Wood
2011-05-23 20:51 ` Benjamin Herrenschmidt
2011-06-17 5:12 ` Benjamin Herrenschmidt
2011-06-17 16:02 ` Scott Wood
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=1305930778.7481.197.camel@pasglop \
--to=benh@kernel.crashing.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=scottwood@freescale.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 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.