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>
This commit is contained in:
parent
ec405ea9fe
commit
46c48f222f
|
@ -14,6 +14,9 @@ typedef struct {
|
||||||
|
|
||||||
#include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */
|
#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
|
#if NR_IRQS > 512
|
||||||
#define HARDIRQ_BITS 10
|
#define HARDIRQ_BITS 10
|
||||||
#elif NR_IRQS > 256
|
#elif NR_IRQS > 256
|
||||||
|
|
|
@ -423,7 +423,7 @@ asmlinkage void __exception do_local_timer(struct pt_regs *regs)
|
||||||
int cpu = smp_processor_id();
|
int cpu = smp_processor_id();
|
||||||
|
|
||||||
if (local_timer_ack()) {
|
if (local_timer_ack()) {
|
||||||
irq_stat[cpu].local_timer_irqs++;
|
__inc_irq_stat(cpu, local_timer_irqs);
|
||||||
ipi_timer();
|
ipi_timer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -437,7 +437,7 @@ void show_local_irqs(struct seq_file *p)
|
||||||
seq_printf(p, "LOC: ");
|
seq_printf(p, "LOC: ");
|
||||||
|
|
||||||
for_each_present_cpu(cpu)
|
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');
|
seq_putc(p, '\n');
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue