diff options
Diffstat (limited to 'arch/arm/include/asm/hardirq.h')
| -rw-r--r-- | arch/arm/include/asm/hardirq.h | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/arch/arm/include/asm/hardirq.h b/arch/arm/include/asm/hardirq.h index 6d7485aff95..fe3ea776dc3 100644 --- a/arch/arm/include/asm/hardirq.h +++ b/arch/arm/include/asm/hardirq.h @@ -5,29 +5,27 @@ #include <linux/threads.h> #include <asm/irq.h> +#define NR_IPI 8 + typedef struct { unsigned int __softirq_pending; - unsigned int local_timer_irqs; +#ifdef CONFIG_SMP + unsigned int ipi_irqs[NR_IPI]; +#endif } ____cacheline_aligned irq_cpustat_t; #include <linux/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */ -#if NR_IRQS > 512 -#define HARDIRQ_BITS 10 -#elif NR_IRQS > 256 -#define HARDIRQ_BITS 9 +#define __inc_irq_stat(cpu, member) __IRQ_STAT(cpu, member)++ +#define __get_irq_stat(cpu, member) __IRQ_STAT(cpu, member) + +#ifdef CONFIG_SMP +u64 smp_irq_stat_cpu(unsigned int cpu); #else -#define HARDIRQ_BITS 8 +#define smp_irq_stat_cpu(cpu) 0 #endif -/* - * The hardirq mask has to be large enough to have space - * for potentially all IRQ sources in the system nesting - * on a single CPU: - */ -#if (1 << HARDIRQ_BITS) < NR_IRQS -# error HARDIRQ_BITS is too low! -#endif +#define arch_irq_stat_cpu smp_irq_stat_cpu #define __ARCH_IRQ_EXIT_IRQS_DISABLED 1 |
