aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/mcheck/therm_throt.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/cpu/mcheck/therm_throt.c')
-rw-r--r--arch/x86/kernel/cpu/mcheck/therm_throt.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/arch/x86/kernel/cpu/mcheck/therm_throt.c b/arch/x86/kernel/cpu/mcheck/therm_throt.c
index 47a1870279aa..f6b35f2a6a37 100644
--- a/arch/x86/kernel/cpu/mcheck/therm_throt.c
+++ b/arch/x86/kernel/cpu/mcheck/therm_throt.c
@@ -378,15 +378,17 @@ static void unexpected_thermal_interrupt(void)
378 378
379static void (*smp_thermal_vector)(void) = unexpected_thermal_interrupt; 379static void (*smp_thermal_vector)(void) = unexpected_thermal_interrupt;
380 380
381asmlinkage void smp_thermal_interrupt(struct pt_regs *regs) 381static inline void __smp_thermal_interrupt(void)
382{ 382{
383 irq_enter();
384 exit_idle();
385 inc_irq_stat(irq_thermal_count); 383 inc_irq_stat(irq_thermal_count);
386 smp_thermal_vector(); 384 smp_thermal_vector();
387 irq_exit(); 385}
388 /* Ack only at the end to avoid potential reentry */ 386
389 ack_APIC_irq(); 387asmlinkage void smp_thermal_interrupt(struct pt_regs *regs)
388{
389 entering_irq();
390 __smp_thermal_interrupt();
391 exiting_ack_irq();
390} 392}
391 393
392/* Thermal monitoring depends on APIC, ACPI and clock modulation */ 394/* Thermal monitoring depends on APIC, ACPI and clock modulation */