[<prev] [next>] [day] [month] [year] [list]
Message-id: <20101028050354.GA23284@july>
Date: Thu, 28 Oct 2010 14:03:54 +0900
From: Kyungmin Park <kmpark@...radead.org>
To: linux@....linux.org.uk, rmk@....linux.org.uk,
linux-arm-kernel@...ts.infradead.org, rabin.vincent@...ricsson.com,
linus.walleij@...ricsson.com
Cc: linux-kernel@...r.kernel.org
Subject: [PATCH] arm: GIC: Use the irq_to_desc for SPARSE IRQ
From: Kyungmin Park <kyungmin.park@...sung.com>
When enable SPARSE_IRQ, there's compiler error at gic.c
Fix it by using the irq_to_desc to get the proper irq desc.
Signed-off-by: Kyungmin Park <kyungmin.park@...sung.com>
---
diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c
index 7dfa9a8..1ca3c0d 100644
--- a/arch/arm/common/gic.c
+++ b/arch/arm/common/gic.c
@@ -158,15 +158,19 @@ static int gic_set_cpu(unsigned int irq, const struct cpumask *mask_val)
{
void __iomem *reg = gic_dist_base(irq) + GIC_DIST_TARGET + (gic_irq(irq) & ~3);
unsigned int shift = (irq % 4) * 8;
- unsigned int cpu = cpumask_first(mask_val);
+ unsigned int node = cpumask_first(mask_val);
+ struct irq_desc *desc;
u32 val;
- spin_lock(&irq_controller_lock);
- irq_desc[irq].node = cpu;
- val = readl(reg) & ~(0xff << shift);
- val |= 1 << (cpu + shift);
- writel(val, reg);
- spin_unlock(&irq_controller_lock);
+ desc = irq_to_desc(irq);
+ if (desc) {
+ spin_lock(&irq_controller_lock);
+ desc->node = node;
+ val = readl(reg) & ~(0xff << shift);
+ val |= 1 << (node + shift);
+ writel(val, reg);
+ spin_unlock(&irq_controller_lock);
+ }
return 0;
}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists