From: vijay.kilari@gmail.com
To: Ian.Campbell@citrix.com, julien.grall@linaro.org,
stefano.stabellini@eu.citrix.com, stefano.stabellini@citrix.com,
xen-devel@lists.xen.org
Cc: Prasun.Kapoor@caviumnetworks.com,
Vijaya Kumar K <Vijaya.Kumar@caviumnetworks.com>,
vijay.kilari@gmail.com
Subject: [PATCH v2 06/15] xen/arm: move gic lock out of gic data structure
Date: Fri, 4 Apr 2014 17:26:24 +0530 [thread overview]
Message-ID: <1396612593-443-7-git-send-email-vijay.kilari@gmail.com> (raw)
In-Reply-To: <1396612593-443-1-git-send-email-vijay.kilari@gmail.com>
From: Vijaya Kumar K <Vijaya.Kumar@caviumnetworks.com>
spinlock is used across generic and GIC low level
functions. Move this lock out of gic data.
This helps to separate generic and low level functions
later.
Signed-off-by: Vijaya Kumar K <Vijaya.Kumar@caviumnetworks.com>
---
xen/arch/arm/gic.c | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index 9f03135..77243cb 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -50,9 +50,9 @@ static struct {
unsigned int lines; /* Number of interrupts (SPIs + PPIs + SGIs) */
struct dt_irq maintenance; /* IRQ maintenance */
unsigned int cpus;
- spinlock_t lock;
} gic;
+static spinlock_t gic_lock;
static irq_desc_t irq_desc[NR_IRQS];
static DEFINE_PER_CPU(irq_desc_t[NR_LOCAL_IRQS], local_irq_desc);
static DEFINE_PER_CPU(uint64_t, lr_mask);
@@ -231,12 +231,12 @@ static void gic_irq_enable(struct irq_desc *desc)
unsigned long flags;
spin_lock_irqsave(&desc->lock, flags);
- spin_lock(&gic.lock);
+ spin_lock(&gic_lock);
desc->status &= ~IRQ_DISABLED;
dsb(sy);
/* Enable routing */
gic_hw_ops->enable_irq(irq);
- spin_unlock(&gic.lock);
+ spin_unlock(&gic_lock);
spin_unlock_irqrestore(&desc->lock, flags);
}
@@ -246,11 +246,11 @@ static void gic_irq_disable(struct irq_desc *desc)
unsigned long flags;
spin_lock_irqsave(&desc->lock, flags);
- spin_lock(&gic.lock);
+ spin_lock(&gic_lock);
/* Disable routing */
gic_hw_ops->disable_irq(irq);
desc->status |= IRQ_DISABLED;
- spin_unlock(&gic.lock);
+ spin_unlock(&gic_lock);
spin_unlock_irqrestore(&desc->lock, flags);
}
@@ -315,7 +315,7 @@ static hw_irq_controller gic_guest_irq_type = {
};
/*
- * - needs to be called with gic.lock held
+ * - needs to be called with gic_lock held
* - needs to be called with a valid cpu_mask, ie each cpu in the mask has
* already called gic_cpu_init
*/
@@ -373,9 +373,9 @@ static int gic_route_irq(unsigned int irq, bool_t level,
desc->handler = &gic_host_irq_type;
- spin_lock(&gic.lock);
+ spin_lock(&gic_lock);
gic_set_irq_properties(irq, level, cpu_mask, priority);
- spin_unlock(&gic.lock);
+ spin_unlock(&gic_lock);
spin_unlock_irqrestore(&desc->lock, flags);
return 0;
@@ -567,15 +567,15 @@ void __init gic_init(void)
set_fixmap(FIXMAP_GICH, gic.hbase >> PAGE_SHIFT, DEV_SHARED);
/* Global settings: interrupt distributor */
- spin_lock_init(&gic.lock);
- spin_lock(&gic.lock);
+ spin_lock_init(&gic_lock);
+ spin_lock(&gic_lock);
gic_dist_init();
gic_cpu_init();
gic_hyp_init();
register_gic_ops(&gic_ops);
- spin_unlock(&gic.lock);
+ spin_unlock(&gic_lock);
}
static void gic_secondary_cpu_init(void)
@@ -636,9 +636,9 @@ void smp_send_state_dump(unsigned int cpu)
/* Set up the per-CPU parts of the GIC for a secondary CPU */
void __cpuinit gic_init_secondary_cpu(void)
{
- spin_lock(&gic.lock);
+ spin_lock(&gic_lock);
gic_hw_ops->secondary_init();
- spin_unlock(&gic.lock);
+ spin_unlock(&gic_lock);
}
/* Shut down the per-CPU GIC interface */
@@ -652,9 +652,9 @@ void gic_disable_cpu(void)
{
ASSERT(!local_irq_is_enabled());
- spin_lock(&gic.lock);
+ spin_lock(&gic_lock);
gic_hw_ops->disable_interface();
- spin_unlock(&gic.lock);
+ spin_unlock(&gic_lock);
}
void gic_route_ppis(void)
@@ -1020,7 +1020,7 @@ int gic_route_irq_to_guest(struct domain *d, const struct dt_irq *irq,
action->free_on_release = 1;
spin_lock_irqsave(&desc->lock, flags);
- spin_lock(&gic.lock);
+ spin_lock(&gic_lock);
desc->handler = &gic_guest_irq_type;
desc->status |= IRQ_GUEST;
@@ -1041,7 +1041,7 @@ int gic_route_irq_to_guest(struct domain *d, const struct dt_irq *irq,
p->desc = desc;
out:
- spin_unlock(&gic.lock);
+ spin_unlock(&gic_lock);
spin_unlock_irqrestore(&desc->lock, flags);
return retval;
}
--
1.7.9.5
next prev parent reply other threads:[~2014-04-04 11:56 UTC|newest]
Thread overview: 100+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-04 11:56 [PATCH v2 00/15] xen/arm: Add GICv3 support vijay.kilari
2014-04-04 11:56 ` [PATCH v2 01/15] xen/arm: register mmio handler at runtime vijay.kilari
2014-04-04 12:18 ` Julien Grall
2014-04-04 12:30 ` Vijay Kilari
2014-04-04 12:42 ` Ian Campbell
2014-04-04 12:54 ` Julien Grall
2014-04-04 12:59 ` Ian Campbell
2014-04-04 13:06 ` Julien Grall
2014-04-04 12:59 ` Julien Grall
2014-04-08 4:47 ` Vijay Kilari
2014-04-08 10:17 ` Julien Grall
2014-04-08 10:34 ` Vijay Kilari
2014-04-08 10:51 ` Julien Grall
2014-04-08 11:41 ` Vijay Kilari
2014-04-08 12:29 ` Ian Campbell
2014-04-04 15:24 ` Vijay Kilari
2014-04-04 15:27 ` Julien Grall
2014-04-08 6:35 ` Vijay Kilari
2014-04-08 10:25 ` Julien Grall
2014-04-09 15:34 ` Ian Campbell
2014-04-04 11:56 ` [PATCH v2 02/15] xen/arm: move vgic rank data to gic header file vijay.kilari
2014-04-04 13:16 ` Julien Grall
2014-04-04 15:27 ` Vijay Kilari
2014-04-04 11:56 ` [PATCH v2 03/15] arm/xen: move gic save and restore registers to gic driver vijay.kilari
2014-04-04 13:23 ` Julien Grall
2014-04-09 16:51 ` Ian Campbell
2014-04-10 4:50 ` Vijay Kilari
2014-04-10 8:32 ` Ian Campbell
2014-04-04 11:56 ` [PATCH v2 04/15] xen/arm: move gic definitions to seperate file vijay.kilari
2014-04-04 13:27 ` Julien Grall
2014-04-04 15:29 ` Vijay Kilari
2014-04-04 15:37 ` Julien Grall
2014-04-09 15:41 ` Ian Campbell
2014-04-04 11:56 ` [PATCH v2 05/15] xen/arm: segregate GIC low level functionality vijay.kilari
2014-04-04 13:55 ` Julien Grall
2014-04-09 7:43 ` Vijay Kilari
2014-04-09 8:36 ` Julien Grall
2014-04-09 15:55 ` Ian Campbell
2014-04-09 17:00 ` Ian Campbell
2014-04-09 17:07 ` Julien Grall
2014-04-10 5:24 ` Vijay Kilari
2014-04-10 8:59 ` Ian Campbell
2014-04-09 8:50 ` Julien Grall
2014-04-09 11:34 ` Vijay Kilari
2014-04-09 12:10 ` Julien Grall
2014-04-09 15:54 ` Ian Campbell
2014-04-04 11:56 ` vijay.kilari [this message]
2014-04-10 8:52 ` [PATCH v2 06/15] xen/arm: move gic lock out of gic data structure Ian Campbell
2014-04-10 9:24 ` Vijay Kilari
2014-04-10 10:02 ` Ian Campbell
2014-04-10 10:12 ` Vijay Kilari
2014-04-10 10:31 ` Ian Campbell
2014-04-04 11:56 ` [PATCH v2 07/15] xen/arm: split gic driver into generic and gic-v2 driver vijay.kilari
2014-04-10 8:58 ` Ian Campbell
2014-04-10 9:27 ` Vijay Kilari
2014-04-04 11:56 ` [PATCH v2 08/15] xen/arm: use device api to detect GIC version vijay.kilari
2014-04-04 14:07 ` Julien Grall
2014-04-09 14:28 ` Vijay Kilari
2014-04-09 14:32 ` Julien Grall
2014-04-10 9:05 ` Ian Campbell
2014-04-04 11:56 ` [PATCH v2 09/15] xen/arm: segregate VGIC low level functionality vijay.kilari
2014-04-04 14:13 ` Julien Grall
2014-04-10 9:08 ` Ian Campbell
2014-04-04 11:56 ` [PATCH v2 10/15] xen/arm: split vgic driver into generic and vgic-v2 driver vijay.kilari
2014-04-10 9:12 ` Ian Campbell
2014-04-04 11:56 ` [PATCH v2 11/15] xen/arm: make GIC context data version specific vijay.kilari
2014-04-04 14:09 ` Julien Grall
2014-04-10 9:14 ` Ian Campbell
2014-04-04 11:56 ` [PATCH v2 12/15] xen/arm: move GIC data to driver from domain structure vijay.kilari
2014-04-10 9:21 ` Ian Campbell
2014-04-04 11:56 ` [PATCH v2 13/15] xen/arm: Add support for GIC v3 vijay.kilari
2014-04-10 9:25 ` Ian Campbell
2014-04-10 10:00 ` Ian Campbell
2014-04-10 10:34 ` Julien Grall
2014-04-10 11:06 ` Vijay Kilari
2014-04-10 11:21 ` Julien Grall
2014-04-10 11:24 ` Julien Grall
2014-04-11 12:59 ` Vijay Kilari
2014-04-14 8:27 ` Ian Campbell
2014-04-14 9:52 ` Vijay Kilari
2014-04-04 11:56 ` [PATCH v2 14/15] xen/arm: Add vgic " vijay.kilari
2014-04-10 10:23 ` Ian Campbell
2014-04-10 10:43 ` Vijay Kilari
2014-04-10 10:51 ` Ian Campbell
2014-04-10 11:19 ` Vijay Kilari
2014-04-10 11:26 ` Ian Campbell
2014-04-10 11:38 ` Vijay Kilari
2014-04-10 12:08 ` Ian Campbell
2014-04-10 13:14 ` Vijay Kilari
2014-04-04 11:56 ` [PATCH v2 15/15] xen/arm: update GIC dt node with GIC v3 information vijay.kilari
2014-04-04 14:22 ` Julien Grall
2014-04-04 15:45 ` Vijay Kilari
2014-04-04 16:00 ` Julien Grall
2014-04-04 16:13 ` Vijay Kilari
2014-04-04 16:42 ` Julien Grall
2014-04-10 10:28 ` Ian Campbell
2014-04-04 13:01 ` [PATCH v2 00/15] xen/arm: Add GICv3 support Julien Grall
2014-04-04 15:56 ` Vijay Kilari
2014-04-04 16:03 ` Julien Grall
2014-04-10 8:45 ` Ian Campbell
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=1396612593-443-7-git-send-email-vijay.kilari@gmail.com \
--to=vijay.kilari@gmail.com \
--cc=Ian.Campbell@citrix.com \
--cc=Prasun.Kapoor@caviumnetworks.com \
--cc=Vijaya.Kumar@caviumnetworks.com \
--cc=julien.grall@linaro.org \
--cc=stefano.stabellini@citrix.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xen.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).