Take a check of watchdog_enabled before reconfigure/enable watchdog.
Signed-off-by: Puyou Lu <[email protected]>
---
kernel/watchdog.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/kernel/watchdog.c b/kernel/watchdog.c
index bed1fe7ecaea..791765c9bece 100644
--- a/kernel/watchdog.c
+++ b/kernel/watchdog.c
@@ -454,6 +454,9 @@ static void watchdog_enable(unsigned int cpu)
WARN_ON_ONCE(cpu != smp_processor_id());
+ if (!watchdog_enabled)
+ return;
+
init_completion(done);
complete(done);
@@ -546,6 +549,10 @@ static void __lockup_detector_reconfigure(void)
set_sample_period();
lockup_detector_update_enable();
+
+ if (!watchdog_enabled)
+ return;
+
if (watchdog_enabled & SOFT_WATCHDOG_ENABLED)
softlockup_start_all();
@@ -591,6 +598,10 @@ static void __lockup_detector_reconfigure(void)
cpus_read_lock();
watchdog_nmi_stop();
lockup_detector_update_enable();
+
+ if (!watchdog_enabled)
+ return;
+
watchdog_nmi_start();
cpus_read_unlock();
}
--
2.17.1