firmware: rockchip: sip: add rockchip SIP runtime service
[firefly-linux-kernel-4.4.55.git] / kernel / watchdog.c
index 25955235ecdde0d973141c55d39f20251c52ba17..1f1b05f5a94b8edaf014495a985168b39d73877f 100644 (file)
@@ -119,7 +119,7 @@ static unsigned long soft_lockup_nmi_warn;
 #ifdef CONFIG_HARDLOCKUP_DETECTOR
 unsigned int __read_mostly hardlockup_panic =
                        CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE;
-static unsigned long hardlockup_allcpu_dumped;
+static unsigned long __maybe_unused hardlockup_allcpu_dumped;
 /*
  * We may not want to enable hard lockup detection by default in all cases,
  * for example when running the kernel as a guest on a hypervisor. In these
@@ -1020,6 +1020,9 @@ static int proc_watchdog_common(int which, struct ctl_table *table, int write,
                 * both lockup detectors are disabled if proc_watchdog_update()
                 * returns an error.
                 */
+               if (old == new)
+                       goto out;
+
                err = proc_watchdog_update();
        }
 out:
@@ -1064,7 +1067,7 @@ int proc_soft_watchdog(struct ctl_table *table, int write,
 int proc_watchdog_thresh(struct ctl_table *table, int write,
                         void __user *buffer, size_t *lenp, loff_t *ppos)
 {
-       int err, old;
+       int err, old, new;
 
        get_online_cpus();
        mutex_lock(&watchdog_proc_mutex);
@@ -1084,6 +1087,10 @@ int proc_watchdog_thresh(struct ctl_table *table, int write,
        /*
         * Update the sample period. Restore on failure.
         */
+       new = ACCESS_ONCE(watchdog_thresh);
+       if (old == new)
+               goto out;
+
        set_sample_period();
        err = proc_watchdog_update();
        if (err) {