|
@@ -797,8 +797,10 @@ static int update_cpumask(struct cpuset *cs, char *buf)
|
|
retval = cpulist_parse(buf, trialcs.cpus_allowed);
|
|
retval = cpulist_parse(buf, trialcs.cpus_allowed);
|
|
if (retval < 0)
|
|
if (retval < 0)
|
|
return retval;
|
|
return retval;
|
|
|
|
+
|
|
|
|
+ if (!cpus_subset(trialcs.cpus_allowed, cpu_online_map))
|
|
|
|
+ return -EINVAL;
|
|
}
|
|
}
|
|
- cpus_and(trialcs.cpus_allowed, trialcs.cpus_allowed, cpu_online_map);
|
|
|
|
retval = validate_change(cs, &trialcs);
|
|
retval = validate_change(cs, &trialcs);
|
|
if (retval < 0)
|
|
if (retval < 0)
|
|
return retval;
|
|
return retval;
|
|
@@ -932,9 +934,11 @@ static int update_nodemask(struct cpuset *cs, char *buf)
|
|
retval = nodelist_parse(buf, trialcs.mems_allowed);
|
|
retval = nodelist_parse(buf, trialcs.mems_allowed);
|
|
if (retval < 0)
|
|
if (retval < 0)
|
|
goto done;
|
|
goto done;
|
|
|
|
+
|
|
|
|
+ if (!nodes_subset(trialcs.mems_allowed,
|
|
|
|
+ node_states[N_HIGH_MEMORY]))
|
|
|
|
+ return -EINVAL;
|
|
}
|
|
}
|
|
- nodes_and(trialcs.mems_allowed, trialcs.mems_allowed,
|
|
|
|
- node_states[N_HIGH_MEMORY]);
|
|
|
|
oldmem = cs->mems_allowed;
|
|
oldmem = cs->mems_allowed;
|
|
if (nodes_equal(oldmem, trialcs.mems_allowed)) {
|
|
if (nodes_equal(oldmem, trialcs.mems_allowed)) {
|
|
retval = 0; /* Too easy - nothing to do */
|
|
retval = 0; /* Too easy - nothing to do */
|