From affc93eb8ab53ca94d86eab3e95dec51de362d71 Mon Sep 17 00:00:00 2001 From: Shaleen Agrawal Date: Thu, 14 Apr 2022 16:07:45 -0700 Subject: [PATCH] sched: Re-fix lock_cpus mask setting during IC migrations In an earlier fix, we intended to clear lock CPUs with a given cluster if and only all CPUs belonging to the cluster did not have a notification pending. However, the fix was incomplete, as we were continuing to do the opposite, resulting in undesired behavior. Fixes: 95d58bdfe8d ("sched/walt: Fix lock_cpus mask setting during IC migrations") Change-Id: Ia3c0d886a2a27b8f4cf8d6f60673aeb7213d5fb9 Signed-off-by: Shaleen Agrawal --- kernel/sched/walt/walt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/sched/walt/walt.c b/kernel/sched/walt/walt.c index beac36928eeb..c4753e613bf0 100644 --- a/kernel/sched/walt/walt.c +++ b/kernel/sched/walt/walt.c @@ -3629,18 +3629,18 @@ static inline void irq_work_restrict_to_mig_clusters(cpumask_t *lock_cpus) int cpu; for_each_sched_cluster(cluster) { - bool keep = false; + bool keep_locked = false; for_each_cpu(cpu, &cluster->cpus) { rq = cpu_rq(cpu); wrq = (struct walt_rq *)rq->android_vendor_data1; /* remove this cluster if it's not being notified */ - if (!wrq->notif_pending) { - keep = true; + if (wrq->notif_pending) { + keep_locked = true; break; } } - if (!keep) + if (!keep_locked) cpumask_andnot(lock_cpus, lock_cpus, &cluster->cpus); } }