We can make "cpumask *nodemask" more local and use for_each_cpu_and()
to simplify this code a little bit.

And NUMA_NO_NODE looks better than "-1".

Signed-off-by: Oleg Nesterov <[email protected]>
---
 kernel/sched/core.c |   14 ++++++--------
 1 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index a2ef0cf..e4fa6be 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -1308,24 +1308,22 @@ static inline bool cpu_allowed(int cpu)
 static int select_fallback_rq(int cpu, struct task_struct *p)
 {
        int nid = cpu_to_node(cpu);
-       const struct cpumask *nodemask = NULL;
        enum { cpuset, possible, fail } state = cpuset;
        int dest_cpu;
 
        /*
         * If the node that the cpu is on has been offlined, cpu_to_node()
-        * will return -1. There is no cpu on the node, and we should
-        * select the cpu on the other node.
+        * will return NUMA_NO_NODE. There is no cpu on the node, and we
+        * should select the cpu on the other node.
         */
-       if (nid != -1) {
-               nodemask = cpumask_of_node(nid);
+       if (nid != NUMA_NO_NODE) {
+               const struct cpumask *nodemask = cpumask_of_node(nid);
 
                /* Look for allowed, online CPU in same node. */
-               for_each_cpu(dest_cpu, nodemask) {
+               for_each_cpu_and(dest_cpu, nodemask, tsk_cpus_allowed(p)) {
                        if (!cpu_allowed(dest_cpu))
                                continue;
-                       if (cpumask_test_cpu(dest_cpu, tsk_cpus_allowed(p)))
-                               return dest_cpu;
+                       return dest_cpu;
                }
        }
 
-- 
1.5.5.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to