1 | // SPDX-License-Identifier: GPL-2.0 |
---|---|
2 | /* |
3 | * Common corrected MCE threshold handler code: |
4 | */ |
5 | #include <linux/interrupt.h> |
6 | #include <linux/kernel.h> |
7 | |
8 | #include <asm/irq_vectors.h> |
9 | #include <asm/traps.h> |
10 | #include <asm/apic.h> |
11 | #include <asm/mce.h> |
12 | #include <asm/trace/irq_vectors.h> |
13 | |
14 | #include "internal.h" |
15 | |
16 | static void default_threshold_interrupt(void) |
17 | { |
18 | pr_err("Unexpected threshold interrupt at vector %x\n", |
19 | THRESHOLD_APIC_VECTOR); |
20 | } |
21 | |
22 | void (*mce_threshold_vector)(void) = default_threshold_interrupt; |
23 | |
24 | DEFINE_IDTENTRY_SYSVEC(sysvec_threshold) |
25 | { |
26 | trace_threshold_apic_entry(THRESHOLD_APIC_VECTOR); |
27 | inc_irq_stat(irq_threshold_count); |
28 | mce_threshold_vector(); |
29 | trace_threshold_apic_exit(THRESHOLD_APIC_VECTOR); |
30 | apic_eoi(); |
31 | } |
32 |