]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - arch/x86/kernel/cpu/mcheck/threshold.c
x86, trace: Add irq vector tracepoints
[mirror_ubuntu-artful-kernel.git] / arch / x86 / kernel / cpu / mcheck / threshold.c
CommitLineData
73af76df
IM
1/*
2 * Common corrected MCE threshold handler code:
3 */
b2762686 4#include <linux/interrupt.h>
73af76df
IM
5#include <linux/kernel.h>
6
b2762686 7#include <asm/irq_vectors.h>
73af76df 8#include <asm/apic.h>
b2762686 9#include <asm/idle.h>
73af76df 10#include <asm/mce.h>
cf910e83 11#include <asm/trace/irq_vectors.h>
b2762686
AK
12
13static void default_threshold_interrupt(void)
14{
15 printk(KERN_ERR "Unexpected threshold interrupt at vector %x\n",
16 THRESHOLD_APIC_VECTOR);
17}
18
19void (*mce_threshold_vector)(void) = default_threshold_interrupt;
20
eddc0e92 21static inline void __smp_threshold_interrupt(void)
b2762686 22{
b2762686
AK
23 inc_irq_stat(irq_threshold_count);
24 mce_threshold_vector();
eddc0e92
SA
25}
26
27asmlinkage void smp_threshold_interrupt(void)
28{
29 entering_irq();
30 __smp_threshold_interrupt();
31 exiting_ack_irq();
b2762686 32}
cf910e83
SA
33
34asmlinkage 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}