|
@@ -857,6 +857,7 @@ static int proc_watchdog_common(int which, struct ctl_table *table, int write,
|
|
int err, old, new;
|
|
int err, old, new;
|
|
int *watchdog_param = (int *)table->data;
|
|
int *watchdog_param = (int *)table->data;
|
|
|
|
|
|
|
|
+ get_online_cpus();
|
|
mutex_lock(&watchdog_proc_mutex);
|
|
mutex_lock(&watchdog_proc_mutex);
|
|
|
|
|
|
if (watchdog_suspended) {
|
|
if (watchdog_suspended) {
|
|
@@ -908,6 +909,7 @@ static int proc_watchdog_common(int which, struct ctl_table *table, int write,
|
|
}
|
|
}
|
|
out:
|
|
out:
|
|
mutex_unlock(&watchdog_proc_mutex);
|
|
mutex_unlock(&watchdog_proc_mutex);
|
|
|
|
+ put_online_cpus();
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -949,6 +951,7 @@ int proc_watchdog_thresh(struct ctl_table *table, int write,
|
|
{
|
|
{
|
|
int err, old;
|
|
int err, old;
|
|
|
|
|
|
|
|
+ get_online_cpus();
|
|
mutex_lock(&watchdog_proc_mutex);
|
|
mutex_lock(&watchdog_proc_mutex);
|
|
|
|
|
|
if (watchdog_suspended) {
|
|
if (watchdog_suspended) {
|
|
@@ -974,6 +977,7 @@ int proc_watchdog_thresh(struct ctl_table *table, int write,
|
|
}
|
|
}
|
|
out:
|
|
out:
|
|
mutex_unlock(&watchdog_proc_mutex);
|
|
mutex_unlock(&watchdog_proc_mutex);
|
|
|
|
+ put_online_cpus();
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -988,6 +992,7 @@ int proc_watchdog_cpumask(struct ctl_table *table, int write,
|
|
{
|
|
{
|
|
int err;
|
|
int err;
|
|
|
|
|
|
|
|
+ get_online_cpus();
|
|
mutex_lock(&watchdog_proc_mutex);
|
|
mutex_lock(&watchdog_proc_mutex);
|
|
|
|
|
|
if (watchdog_suspended) {
|
|
if (watchdog_suspended) {
|
|
@@ -1015,6 +1020,7 @@ int proc_watchdog_cpumask(struct ctl_table *table, int write,
|
|
}
|
|
}
|
|
out:
|
|
out:
|
|
mutex_unlock(&watchdog_proc_mutex);
|
|
mutex_unlock(&watchdog_proc_mutex);
|
|
|
|
+ put_online_cpus();
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|
|
|
|
|