diff options
-rw-r--r-- | arch/x86/include/asm/hardirq_32.h | 14 | ||||
-rw-r--r-- | arch/x86/include/asm/hardirq_64.h | 10 |
2 files changed, 15 insertions, 9 deletions
diff --git a/arch/x86/include/asm/hardirq_32.h b/arch/x86/include/asm/hardirq_32.h index a70ed050fdef..e5a332c28c98 100644 --- a/arch/x86/include/asm/hardirq_32.h +++ b/arch/x86/include/asm/hardirq_32.h | |||
@@ -14,6 +14,7 @@ typedef struct { | |||
14 | unsigned int irq_tlb_count; | 14 | unsigned int irq_tlb_count; |
15 | unsigned int irq_thermal_count; | 15 | unsigned int irq_thermal_count; |
16 | unsigned int irq_spurious_count; | 16 | unsigned int irq_spurious_count; |
17 | unsigned int irq_threshold_count; | ||
17 | } ____cacheline_aligned irq_cpustat_t; | 18 | } ____cacheline_aligned irq_cpustat_t; |
18 | 19 | ||
19 | DECLARE_PER_CPU(irq_cpustat_t, irq_stat); | 20 | DECLARE_PER_CPU(irq_cpustat_t, irq_stat); |
@@ -22,11 +23,16 @@ DECLARE_PER_CPU(irq_cpustat_t, irq_stat); | |||
22 | #define MAX_HARDIRQS_PER_CPU NR_VECTORS | 23 | #define MAX_HARDIRQS_PER_CPU NR_VECTORS |
23 | 24 | ||
24 | #define __ARCH_IRQ_STAT | 25 | #define __ARCH_IRQ_STAT |
25 | #define __IRQ_STAT(cpu, member) (per_cpu(irq_stat, cpu).member) | ||
26 | 26 | ||
27 | #define inc_irq_stat(member) (__get_cpu_var(irq_stat).member++) | 27 | #define inc_irq_stat(member) percpu_add(irq_stat.member, 1) |
28 | 28 | ||
29 | void ack_bad_irq(unsigned int irq); | 29 | #define local_softirq_pending() percpu_read(irq_stat.__softirq_pending) |
30 | #include <linux/irq_cpustat.h> | 30 | |
31 | #define __ARCH_SET_SOFTIRQ_PENDING | ||
32 | |||
33 | #define set_softirq_pending(x) percpu_write(irq_stat.__softirq_pending, (x)) | ||
34 | #define or_softirq_pending(x) percpu_or(irq_stat.__softirq_pending, (x)) | ||
35 | |||
36 | extern void ack_bad_irq(unsigned int irq); | ||
31 | 37 | ||
32 | #endif /* _ASM_X86_HARDIRQ_32_H */ | 38 | #endif /* _ASM_X86_HARDIRQ_32_H */ |
diff --git a/arch/x86/include/asm/hardirq_64.h b/arch/x86/include/asm/hardirq_64.h index 873c3c7bffcc..392e7d614579 100644 --- a/arch/x86/include/asm/hardirq_64.h +++ b/arch/x86/include/asm/hardirq_64.h | |||
@@ -22,16 +22,16 @@ DECLARE_PER_CPU(irq_cpustat_t, irq_stat); | |||
22 | /* We can have at most NR_VECTORS irqs routed to a cpu at a time */ | 22 | /* We can have at most NR_VECTORS irqs routed to a cpu at a time */ |
23 | #define MAX_HARDIRQS_PER_CPU NR_VECTORS | 23 | #define MAX_HARDIRQS_PER_CPU NR_VECTORS |
24 | 24 | ||
25 | #define __ARCH_IRQ_STAT 1 | 25 | #define __ARCH_IRQ_STAT |
26 | 26 | ||
27 | #define inc_irq_stat(member) percpu_add(irq_stat.member, 1) | 27 | #define inc_irq_stat(member) percpu_add(irq_stat.member, 1) |
28 | 28 | ||
29 | #define local_softirq_pending() percpu_read(irq_stat.__softirq_pending) | 29 | #define local_softirq_pending() percpu_read(irq_stat.__softirq_pending) |
30 | 30 | ||
31 | #define __ARCH_SET_SOFTIRQ_PENDING 1 | 31 | #define __ARCH_SET_SOFTIRQ_PENDING |
32 | 32 | ||
33 | #define set_softirq_pending(x) percpu_write(irq_stat.__softirq_pending, (x)) | 33 | #define set_softirq_pending(x) percpu_write(irq_stat.__softirq_pending, (x)) |
34 | #define or_softirq_pending(x) percpu_or(irq_stat.__softirq_pending, (x)) | 34 | #define or_softirq_pending(x) percpu_or(irq_stat.__softirq_pending, (x)) |
35 | 35 | ||
36 | extern void ack_bad_irq(unsigned int irq); | 36 | extern void ack_bad_irq(unsigned int irq); |
37 | 37 | ||