From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Michael Ellerman <michael@ellerman.id.au>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: [PATCH 1/4] Split virq setup logic out into irq_setup_virq()
Date: Tue, 05 Jun 2007 08:43:32 +1000 [thread overview]
Message-ID: <1180997012.31677.79.camel@localhost.localdomain> (raw)
In-Reply-To: <f0cd638495b96585dec513f41335154e60675813.1180961962.git.michael@ellerman.id.au>
On Mon, 2007-06-04 at 22:59 +1000, Michael Ellerman wrote:
> A future patch will need the logic at the end of irq_create_mapping()
> which setups a virq and installs it in the irq_map. So split it out
> into a new function irq_setup_virq().
>
> Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> ---
> arch/powerpc/kernel/irq.c | 32 +++++++++++++++++++++-----------
> 1 files changed, 21 insertions(+), 11 deletions(-)
>
> diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
> index 42c8ed6..9bafc88 100644
> --- a/arch/powerpc/kernel/irq.c
> +++ b/arch/powerpc/kernel/irq.c
> @@ -591,6 +591,25 @@ static void irq_radix_rdunlock(unsigned long flags)
> local_irq_restore(flags);
> }
>
> +static int irq_setup_virq(struct irq_host *host, unsigned int virq,
> + irq_hw_number_t hwirq)
> +{
> + /* Clear IRQ_NOREQUEST flag */
> + get_irq_desc(virq)->status &= ~IRQ_NOREQUEST;
> +
> + /* map it */
> + smp_wmb();
> + irq_map[virq].hwirq = hwirq;
> + smp_mb();
> +
> + if (host->ops->map(host, virq, hwirq)) {
> + pr_debug("irq: -> mapping failed, freeing\n");
> + irq_free_virt(virq, 1);
> + return -1;
> + }
> +
> + return 0;
> +}
>
> unsigned int irq_create_mapping(struct irq_host *host,
> irq_hw_number_t hwirq)
> @@ -639,18 +658,9 @@ unsigned int irq_create_mapping(struct irq_host *host,
> }
> pr_debug("irq: -> obtained virq %d\n", virq);
>
> - /* Clear IRQ_NOREQUEST flag */
> - get_irq_desc(virq)->status &= ~IRQ_NOREQUEST;
> -
> - /* map it */
> - smp_wmb();
> - irq_map[virq].hwirq = hwirq;
> - smp_mb();
> - if (host->ops->map(host, virq, hwirq)) {
> - pr_debug("irq: -> mapping failed, freeing\n");
> - irq_free_virt(virq, 1);
> + if (irq_setup_virq(host, virq, hwirq))
> return NO_IRQ;
> - }
> +
> return virq;
> }
> EXPORT_SYMBOL_GPL(irq_create_mapping);
prev parent reply other threads:[~2007-06-04 22:43 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-04 12:59 [PATCH 1/4] Split virq setup logic out into irq_setup_virq() Michael Ellerman
2007-06-04 13:00 ` [PATCH 2/4] Add irq_create_direct_mapping() Michael Ellerman
2007-06-04 22:44 ` Benjamin Herrenschmidt
2007-06-04 13:00 ` [PATCH 3/4] Add for_each_compatible_node() Michael Ellerman
2007-06-04 22:44 ` Benjamin Herrenschmidt
2007-06-04 13:00 ` [RFC/PATCH 4/4] Add support for MSI on Axon-based Cell systems Michael Ellerman
2007-06-04 17:09 ` Arnd Bergmann
2007-06-04 17:12 ` Arnd Bergmann
2007-06-08 2:53 ` Michael Ellerman
2007-06-08 8:47 ` Segher Boessenkool
2007-06-08 19:26 ` Arnd Bergmann
2007-06-08 19:36 ` Segher Boessenkool
2007-06-08 19:59 ` Segher Boessenkool
2007-06-08 20:06 ` Arnd Bergmann
2007-06-08 20:16 ` Segher Boessenkool
2007-06-12 2:32 ` Michael Ellerman
2007-06-08 20:01 ` Arnd Bergmann
2007-06-08 20:06 ` Segher Boessenkool
2007-06-12 2:30 ` Michael Ellerman
2007-06-04 22:45 ` Benjamin Herrenschmidt
2007-06-05 7:00 ` Jean-Christophe Dubois
2007-06-05 9:16 ` Arnd Bergmann
2007-06-05 9:29 ` Jean-Christophe Dubois
2007-06-05 9:30 ` Arnd Bergmann
2007-06-07 7:58 ` Michael Ellerman
2007-06-07 8:10 ` Jean-Christophe Dubois
2007-06-07 11:55 ` Benjamin Herrenschmidt
2007-06-07 12:00 ` Jean-Christophe Dubois
2007-06-05 14:12 ` Milton Miller
2007-06-06 5:19 ` Michael Ellerman
2007-06-04 22:43 ` Benjamin Herrenschmidt [this message]
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=1180997012.31677.79.camel@localhost.localdomain \
--to=benh@kernel.crashing.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=michael@ellerman.id.au \
/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.