diff options
-rw-r--r-- | lib/cpumask.c | 9 |
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); | |||
37 | int cpumask_next_and(int n, const struct cpumask *src1p, | 37 | int 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 | } |
45 | EXPORT_SYMBOL(cpumask_next_and); | 46 | EXPORT_SYMBOL(cpumask_next_and); |
46 | 47 | ||