]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
workqueue: fix opencoded cpumask_next_and_wrap() in wq_select_unbound_cpu()
authorYury Norov [NVIDIA] <yury.norov@gmail.com>
Thu, 5 Jun 2025 00:21:37 +0000 (20:21 -0400)
committerTejun Heo <tj@kernel.org>
Mon, 9 Jun 2025 18:25:17 +0000 (08:25 -1000)
The dedicated helper is more verbose and effective comparing to
cpumask_first() followed by cpumask_next().

Signed-off-by: Yury Norov [NVIDIA] <yury.norov@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/workqueue.c

index 97f37b5bae669cfcf80363de052cd3d2265c108f..d9de0f2a2e0063b2efd14c37390a172b8e2e591c 100644 (file)
@@ -2221,12 +2221,9 @@ static int wq_select_unbound_cpu(int cpu)
        }
 
        new_cpu = __this_cpu_read(wq_rr_cpu_last);
-       new_cpu = cpumask_next_and(new_cpu, wq_unbound_cpumask, cpu_online_mask);
-       if (unlikely(new_cpu >= nr_cpu_ids)) {
-               new_cpu = cpumask_first_and(wq_unbound_cpumask, cpu_online_mask);
-               if (unlikely(new_cpu >= nr_cpu_ids))
-                       return cpu;
-       }
+       new_cpu = cpumask_next_and_wrap(new_cpu, wq_unbound_cpumask, cpu_online_mask);
+       if (unlikely(new_cpu >= nr_cpu_ids))
+               return cpu;
        __this_cpu_write(wq_rr_cpu_last, new_cpu);
 
        return new_cpu;