]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - kernel/watchdog.c
watchdog: do not unpark threads in watchdog_park_threads() on error
[mirror_ubuntu-bionic-kernel.git] / kernel / watchdog.c
index e8b19db9c14aaa3d457762c0ebb9767ac356df85..452e4ed507e5e3e2e48ad097082b2502a976ddc6 100644 (file)
@@ -654,6 +654,12 @@ static struct smp_hotplug_thread watchdog_threads = {
 
 /*
  * park all watchdog threads that are specified in 'watchdog_cpumask'
+ *
+ * This function returns an error if kthread_park() of a watchdog thread
+ * fails. In this situation, the watchdog threads of some CPUs can already
+ * be parked and the watchdog threads of other CPUs can still be runnable.
+ * Callers are expected to handle this special condition as appropriate in
+ * their context.
  */
 static int watchdog_park_threads(void)
 {
@@ -665,10 +671,6 @@ static int watchdog_park_threads(void)
                if (ret)
                        break;
        }
-       if (ret) {
-               for_each_watchdog_cpu(cpu)
-                       kthread_unpark(per_cpu(softlockup_watchdog, cpu));
-       }
        put_online_cpus();
 
        return ret;