void stop_apic_nmi_watchdog(void *unused) { /* only support LOCAL and IO APICs for now */ if ((nmi_watchdog != NMI_LOCAL_APIC) && (nmi_watchdog != NMI_IO_APIC)) return; if (__get_cpu_var(wd_enabled) == 0) return; if (nmi_watchdog == NMI_LOCAL_APIC) lapic_watchdog_stop(); __get_cpu_var(wd_enabled) = 0; atomic_dec(&nmi_active); }
void stop_apic_nmi_watchdog(void *unused) { /* only support LOCAL and IO APICs for now */ if (!nmi_watchdog_active()) return; if (__get_cpu_var(wd_enabled) == 0) return; if (nmi_watchdog == NMI_LOCAL_APIC) lapic_watchdog_stop(); else __acpi_nmi_disable(NULL); __get_cpu_var(wd_enabled) = 0; atomic_dec(&nmi_active); }
void stop_apic_nmi_watchdog(void *unused) { struct hrtimer *hrtimer = &__get_cpu_var(nmi_watchdog_hrtimer); /* only support LOCAL and IO APICs for now */ if (!nmi_watchdog_active()) return; if (__get_cpu_var(wd_enabled) == 0) return; /* disable the hrtimer */ hrtimer_cancel(hrtimer); if (nmi_watchdog == NMI_LOCAL_APIC) lapic_watchdog_stop(); else __acpi_nmi_disable(NULL); __get_cpu_var(wd_enabled) = 0; atomic_dec(&nmi_active); }