| .. | .. |
|---|
| 614 | 614 | |
|---|
| 615 | 615 | static void (*smp_thermal_vector)(void) = unexpected_thermal_interrupt; |
|---|
| 616 | 616 | |
|---|
| 617 | +/* |
|---|
| 618 | + * irq_pipeline: MCE have NMI semantics wrt to pipelining, they can |
|---|
| 619 | + * and should be handled immediately out of the IDT. |
|---|
| 620 | + */ |
|---|
| 617 | 621 | DEFINE_IDTENTRY_SYSVEC(sysvec_thermal) |
|---|
| 618 | 622 | { |
|---|
| 619 | 623 | trace_thermal_apic_entry(THERMAL_APIC_VECTOR); |
|---|
| 620 | 624 | inc_irq_stat(irq_thermal_count); |
|---|
| 621 | 625 | smp_thermal_vector(); |
|---|
| 622 | 626 | trace_thermal_apic_exit(THERMAL_APIC_VECTOR); |
|---|
| 623 | | - ack_APIC_irq(); |
|---|
| 627 | + __ack_APIC_irq(); |
|---|
| 624 | 628 | } |
|---|
| 625 | 629 | |
|---|
| 626 | 630 | /* Thermal monitoring depends on APIC, ACPI and clock modulation */ |
|---|