]>
Commit | Line | Data |
---|---|---|
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> |
b2762686 AK |
11 | |
12 | static void default_threshold_interrupt(void) | |
13 | { | |
14 | printk(KERN_ERR "Unexpected threshold interrupt at vector %x\n", | |
15 | THRESHOLD_APIC_VECTOR); | |
16 | } | |
17 | ||
18 | void (*mce_threshold_vector)(void) = default_threshold_interrupt; | |
19 | ||
7856f6cc | 20 | asmlinkage void smp_threshold_interrupt(void) |
b2762686 | 21 | { |
b2762686 | 22 | irq_enter(); |
98ad1cc1 | 23 | exit_idle(); |
b2762686 AK |
24 | inc_irq_stat(irq_threshold_count); |
25 | mce_threshold_vector(); | |
26 | irq_exit(); | |
f9695df4 AK |
27 | /* Ack only at the end to avoid potential reentry */ |
28 | ack_APIC_irq(); | |
b2762686 | 29 | } |