summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2010-11-15 14:15:03 +0000
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-12-20 15:06:58 +0000
commit46c48f222f568decb881a552caa1c8f9c96c521e (patch)
treed84e79cfc44af8d99eb23e2aebee376feb55ef8a
parentec405ea9fe5fdeb40824edba7082803b3e98f176 (diff)
ARM: SMP: provide accessors for irq_stat data
Provide __inc_irq_stat() and __get_irq_stat() to increment and read the irq stat counters. Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--arch/arm/include/asm/hardirq.h3
-rw-r--r--arch/arm/kernel/smp.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/arch/arm/include/asm/hardirq.h b/arch/arm/include/asm/hardirq.h
index 522fb23241a..923eaa1ba83 100644
--- a/arch/arm/include/asm/hardirq.h
+++ b/arch/arm/include/asm/hardirq.h
@@ -14,6 +14,9 @@ typedef struct {
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
+#define __inc_irq_stat(cpu, member) __IRQ_STAT(cpu, member)++
+#define __get_irq_stat(cpu, member) __IRQ_STAT(cpu, member)
+
#if NR_IRQS > 512
#define HARDIRQ_BITS 10
#elif NR_IRQS > 256
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 36d4b9140dc..24131264ec2 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -423,7 +423,7 @@ asmlinkage void __exception do_local_timer(struct pt_regs *regs)
int cpu = smp_processor_id();
if (local_timer_ack()) {
- irq_stat[cpu].local_timer_irqs++;
+ __inc_irq_stat(cpu, local_timer_irqs);
ipi_timer();
}
@@ -437,7 +437,7 @@ void show_local_irqs(struct seq_file *p)
seq_printf(p, "LOC: ");
for_each_present_cpu(cpu)
- seq_printf(p, "%10u ", irq_stat[cpu].local_timer_irqs);
+ seq_printf(p, "%10u ", __get_irq_stat(cpu, local_timer_irqs));
seq_putc(p, '\n');
}