]> git.ipfire.org Git - thirdparty/kernel/stable.git/blobdiff - lib/cpumask.c
lib/find_bit: add find_next{,_and}_bit_wrap
[thirdparty/kernel/stable.git] / lib / cpumask.c
index 2c4a63b6f03f5e496b7cd984072de065f48bbd96..c7c392514fd34f3da4415c11dcd560e780941171 100644 (file)
@@ -166,10 +166,8 @@ unsigned int cpumask_any_and_distribute(const struct cpumask *src1p,
        /* NOTE: our first selection will skip 0. */
        prev = __this_cpu_read(distribute_cpu_mask_prev);
 
-       next = cpumask_next_and(prev, src1p, src2p);
-       if (next >= nr_cpu_ids)
-               next = cpumask_first_and(src1p, src2p);
-
+       next = find_next_and_bit_wrap(cpumask_bits(src1p), cpumask_bits(src2p),
+                                       nr_cpumask_bits, prev + 1);
        if (next < nr_cpu_ids)
                __this_cpu_write(distribute_cpu_mask_prev, next);
 
@@ -183,11 +181,7 @@ unsigned int cpumask_any_distribute(const struct cpumask *srcp)
 
        /* NOTE: our first selection will skip 0. */
        prev = __this_cpu_read(distribute_cpu_mask_prev);
-
-       next = cpumask_next(prev, srcp);
-       if (next >= nr_cpu_ids)
-               next = cpumask_first(srcp);
-
+       next = find_next_bit_wrap(cpumask_bits(srcp), nr_cpumask_bits, prev + 1);
        if (next < nr_cpu_ids)
                __this_cpu_write(distribute_cpu_mask_prev, next);