From 17f3e8c65f096a7a37738eeb6f99deee3c5ed76d Mon Sep 17 00:00:00 2001 From: Hillf Danton Date: Thu, 5 May 2011 20:53:20 +0800 Subject: [PATCH] --- yaml --- r: 245601 b: refs/heads/master c: 7142d17e8f935fa842e9f6eece2281b6d41625d6 h: refs/heads/master i: 245599: 1a6c568df27b478a7eb23802567ece244d0bc1d5 v: v3 --- [refs] | 2 +- trunk/kernel/sched.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 25b039bc3bce..c666a35c3788 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4934a4d3d3fa775601a9f1b35cc0e2aa93f81355 +refs/heads/master: 7142d17e8f935fa842e9f6eece2281b6d41625d6 diff --git a/trunk/kernel/sched.c b/trunk/kernel/sched.c index 3d8a1b2680ee..da9338150484 100644 --- a/trunk/kernel/sched.c +++ b/trunk/kernel/sched.c @@ -6807,7 +6807,7 @@ __setup("isolcpus=", isolated_cpu_setup); */ static int find_next_best_node(int node, nodemask_t *used_nodes) { - int i, n, val, min_val, best_node = 0; + int i, n, val, min_val, best_node = -1; min_val = INT_MAX; @@ -6831,7 +6831,8 @@ static int find_next_best_node(int node, nodemask_t *used_nodes) } } - node_set(best_node, *used_nodes); + if (best_node != -1) + node_set(best_node, *used_nodes); return best_node; } @@ -6857,7 +6858,8 @@ static void sched_domain_node_span(int node, struct cpumask *span) for (i = 1; i < SD_NODES_PER_DOMAIN; i++) { int next_node = find_next_best_node(node, &used_nodes); - + if (next_node < 0) + break; cpumask_or(span, span, cpumask_of_node(next_node)); } }