mirror of
https://github.com/torvalds/linux.git
synced 2026-10-07 05:31:08 -04:00
watchdog: Add watchdog enable/disable all functions
This patch adds two new functions to enable/disable the watchdog across all CPUs. This will be used by the HT PMU bug workaround code to disable/enable the NMI watchdog across quirk enablement. Signed-off-by: Stephane Eranian <[email protected]> Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: Frederic Weisbecker <[email protected]> Cc: Don Zickus <[email protected]> Cc: Andrew Morton <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Ingo Molnar <[email protected]>
This commit is contained in:
1 parent
c02cdbf60b
commit
b3738d2932
2 files changed
+36
No files matched your search
@@ -137,4 +137,12 @@ extern int watchdog_init_timeout(struct watchdog_device *wdd,
|
||||
extern int watchdog_register_device(struct watchdog_device *);
|
||||
extern void watchdog_unregister_device(struct watchdog_device *);
|
||||
|
||||
#ifdef CONFIG_HARDLOCKUP_DETECTOR
|
||||
void watchdog_nmi_disable_all(void);
|
||||
void watchdog_nmi_enable_all(void);
|
||||
#else
|
||||
static inline void watchdog_nmi_disable_all(void) {}
|
||||
static inline void watchdog_nmi_enable_all(void) {}
|
||||
#endif
|
||||
|
||||
#endif /* ifndef _LINUX_WATCHDOG_H */
|
||||
@@ -567,9 +567,37 @@ static void watchdog_nmi_disable(unsigned int cpu)
|
||||
cpu0_err = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void watchdog_nmi_enable_all(void)
|
||||
{
|
||||
int cpu;
|
||||
|
||||
if (!watchdog_user_enabled)
|
||||
return;
|
||||
|
||||
get_online_cpus();
|
||||
for_each_online_cpu(cpu)
|
||||
watchdog_nmi_enable(cpu);
|
||||
put_online_cpus();
|
||||
}
|
||||
|
||||
void watchdog_nmi_disable_all(void)
|
||||
{
|
||||
int cpu;
|
||||
|
||||
if (!watchdog_running)
|
||||
return;
|
||||
|
||||
get_online_cpus();
|
||||
for_each_online_cpu(cpu)
|
||||
watchdog_nmi_disable(cpu);
|
||||
put_online_cpus();
|
||||
}
|
||||
#else
|
||||
static int watchdog_nmi_enable(unsigned int cpu) { return 0; }
|
||||
static void watchdog_nmi_disable(unsigned int cpu) { return; }
|
||||
void watchdog_nmi_enable_all(void) {}
|
||||
void watchdog_nmi_disable_all(void) {}
|
||||
#endif /* CONFIG_HARDLOCKUP_DETECTOR */
|
||||
|
||||
static struct smp_hotplug_thread watchdog_threads = {
|
||||
|
||||
Reference in new issue
Block a user