Messages in this thread Patch in this message | | | From | zanussi@kernel ... | Subject | [PATCH RT 08/23] sched: migrate disable: Protect cpus_ptr with lock | Date | Thu, 27 Feb 2020 08:33:19 -0600 |
| |
From: Scott Wood <swood@redhat.com>
v4.14.170-rt75-rc2 stable review patch. If anyone has any objections, please let me know.
-----------
[ Upstream commit 27ee52a891ed2c7e2e2c8332ccae0de7c2674b09 ]
Various places assume that cpus_ptr is protected by rq/pi locks, so don't change it before grabbing those locks.
Signed-off-by: Scott Wood <swood@redhat.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Tom Zanussi <zanussi@kernel.org> --- kernel/sched/core.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 4708129e8df1..189e6f08575e 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -6923,9 +6923,8 @@ migrate_disable_update_cpus_allowed(struct task_struct *p) struct rq *rq; struct rq_flags rf; - p->cpus_ptr = cpumask_of(smp_processor_id()); - rq = task_rq_lock(p, &rf); + p->cpus_ptr = cpumask_of(smp_processor_id()); update_nr_migratory(p, -1); p->nr_cpus_allowed = 1; task_rq_unlock(rq, p, &rf); @@ -6937,9 +6936,8 @@ migrate_enable_update_cpus_allowed(struct task_struct *p) struct rq *rq; struct rq_flags rf; - p->cpus_ptr = &p->cpus_mask; - rq = task_rq_lock(p, &rf); + p->cpus_ptr = &p->cpus_mask; p->nr_cpus_allowed = cpumask_weight(&p->cpus_mask); update_nr_migratory(p, 1); task_rq_unlock(rq, p, &rf); -- 2.14.1
| |