|
@@ -4029,14 +4029,14 @@ long sched_setaffinity(pid_t pid, const struct cpumask *in_mask)
|
|
rcu_read_lock();
|
|
rcu_read_lock();
|
|
if (!ns_capable(__task_cred(p)->user_ns, CAP_SYS_NICE)) {
|
|
if (!ns_capable(__task_cred(p)->user_ns, CAP_SYS_NICE)) {
|
|
rcu_read_unlock();
|
|
rcu_read_unlock();
|
|
- goto out_unlock;
|
|
|
|
|
|
+ goto out_free_new_mask;
|
|
}
|
|
}
|
|
rcu_read_unlock();
|
|
rcu_read_unlock();
|
|
}
|
|
}
|
|
|
|
|
|
retval = security_task_setscheduler(p);
|
|
retval = security_task_setscheduler(p);
|
|
if (retval)
|
|
if (retval)
|
|
- goto out_unlock;
|
|
|
|
|
|
+ goto out_free_new_mask;
|
|
|
|
|
|
|
|
|
|
cpuset_cpus_allowed(p, cpus_allowed);
|
|
cpuset_cpus_allowed(p, cpus_allowed);
|
|
@@ -4054,7 +4054,7 @@ long sched_setaffinity(pid_t pid, const struct cpumask *in_mask)
|
|
|
|
|
|
if (dl_bandwidth_enabled() && !cpumask_subset(span, new_mask)) {
|
|
if (dl_bandwidth_enabled() && !cpumask_subset(span, new_mask)) {
|
|
retval = -EBUSY;
|
|
retval = -EBUSY;
|
|
- goto out_unlock;
|
|
|
|
|
|
+ goto out_free_new_mask;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
@@ -4073,7 +4073,7 @@ again:
|
|
goto again;
|
|
goto again;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-out_unlock:
|
|
|
|
|
|
+out_free_new_mask:
|
|
free_cpumask_var(new_mask);
|
|
free_cpumask_var(new_mask);
|
|
out_free_cpus_allowed:
|
|
out_free_cpus_allowed:
|
|
free_cpumask_var(cpus_allowed);
|
|
free_cpumask_var(cpus_allowed);
|