Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / arch / x86 / kernel / cpu / mcheck / threshold.c
1 /*
2  * Common corrected MCE threshold handler code:
3  */
4 #include <linux/interrupt.h>
5 #include <linux/kernel.h>
6
7 #include <asm/irq_vectors.h>
8 #include <asm/apic.h>
9 #include <asm/idle.h>
10 #include <asm/mce.h>
11 #include <asm/trace/irq_vectors.h>
12
13 static void default_threshold_interrupt(void)
14 {
15         printk(KERN_ERR "Unexpected threshold interrupt at vector %x\n",
16                          THRESHOLD_APIC_VECTOR);
17 }
18
19 void (*mce_threshold_vector)(void) = default_threshold_interrupt;
20
21 static inline void __smp_threshold_interrupt(void)
22 {
23         inc_irq_stat(irq_threshold_count);
24         mce_threshold_vector();
25 }
26
27 asmlinkage __visible void smp_threshold_interrupt(void)
28 {
29         entering_irq();
30         __smp_threshold_interrupt();
31         exiting_ack_irq();
32 }
33
34 asmlinkage __visible void smp_trace_threshold_interrupt(void)
35 {
36         entering_irq();
37         trace_threshold_apic_entry(THRESHOLD_APIC_VECTOR);
38         __smp_threshold_interrupt();
39         trace_threshold_apic_exit(THRESHOLD_APIC_VECTOR);
40         exiting_ack_irq();
41 }