All of lore.kernel.org
 help / color / mirror / Atom feed
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 */

  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.