aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/cpumask.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/cpumask.c b/lib/cpumask.c
index b6513a9f2892..5ab1553fd076 100644
--- a/lib/cpumask.c
+++ b/lib/cpumask.c
@@ -37,10 +37,11 @@ EXPORT_SYMBOL(__next_cpu_nr);
37int cpumask_next_and(int n, const struct cpumask *src1p, 37int cpumask_next_and(int n, const struct cpumask *src1p,
38 const struct cpumask *src2p) 38 const struct cpumask *src2p)
39{ 39{
40 while ((n = cpumask_next(n, src1p)) < nr_cpu_ids) 40 struct cpumask tmp;
41 if (cpumask_test_cpu(n, src2p)) 41
42 break; 42 if (cpumask_and(&tmp, src1p, src2p))
43 return n; 43 return cpumask_next(n, &tmp);
44 return nr_cpu_ids;
44} 45}
45EXPORT_SYMBOL(cpumask_next_and); 46EXPORT_SYMBOL(cpumask_next_and);
46 47