diff --git a/include/linux/sched.h b/include/linux/sched.h index d2eceea955b0968d6d90ef2cbb0a55f0386fd974..608100b3cf3deb9ffbdbf71dcbd15f519c86bbce 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1593,7 +1593,7 @@ current_restore_flags(unsigned long orig_flags, unsigned long flags) } extern int cpuset_cpumask_can_shrink(const struct cpumask *cur, const struct cpumask *trial); -extern int task_can_attach(struct task_struct *p, const struct cpumask *cs_cpus_allowed); +extern int task_can_attach(struct task_struct *p, const struct cpumask *cs_effective_cpus); #ifdef CONFIG_SMP extern void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask); extern int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask); diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c index 8783c040bfaf1e5a014b3530af3de58e94aed805..b5eb20ca44e536a0ed30fc3a395ca09ac9f2fadb 100644 --- a/kernel/cgroup/cpuset.c +++ b/kernel/cgroup/cpuset.c @@ -1570,7 +1570,7 @@ static int cpuset_can_attach(struct cgroup_taskset *tset) goto out_unlock; cgroup_taskset_for_each(task, css, tset) { - ret = task_can_attach(task, cs->cpus_allowed); + ret = task_can_attach(task, cs->effective_cpus); if (ret) goto out_unlock; ret = security_task_setscheduler(task); diff --git a/kernel/sched/core.c b/kernel/sched/core.c index ee191af83fd0cad17407c9f428b1bdbb294e9862..7515d8f771945f09b7df16089a3c3d0d88aba4be 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -5538,7 +5538,7 @@ int cpuset_cpumask_can_shrink(const struct cpumask *cur, } int task_can_attach(struct task_struct *p, - const struct cpumask *cs_cpus_allowed) + const struct cpumask *cs_effective_cpus) { int ret = 0; @@ -5557,8 +5557,8 @@ int task_can_attach(struct task_struct *p, } if (dl_task(p) && !cpumask_intersects(task_rq(p)->rd->span, - cs_cpus_allowed)) - ret = dl_task_can_attach(p, cs_cpus_allowed); + cs_effective_cpus)) + ret = dl_task_can_attach(p, cs_effective_cpus); out: return ret;