diff options
author | Yury Norov <yury.norov@gmail.com> | 2021-08-15 00:17:05 +0300 |
---|---|---|
committer | Yury Norov <yury.norov@gmail.com> | 2022-01-15 19:47:31 +0300 |
commit | 9b51d9d866482a703646fd4c07e433c3d9d88efd (patch) | |
tree | 848b62fea613d49466544ae6e441ddac0478ff34 /include/linux/cpumask.h | |
parent | 4ade0818cf048bb166e875ed4f8b456e6c2c7b3c (diff) | |
download | linux-9b51d9d866482a703646fd4c07e433c3d9d88efd.tar.xz |
cpumask: replace cpumask_next_* with cpumask_first_* where appropriate
cpumask_first() is a more effective analogue of 'next' version if n == -1
(which means start == 0). This patch replaces 'next' with 'first' where
things look trivial.
There's no cpumask_first_zero() function, so create it.
Signed-off-by: Yury Norov <yury.norov@gmail.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Diffstat (limited to 'include/linux/cpumask.h')
-rw-r--r-- | include/linux/cpumask.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index c4e1b9ea0ba4..64dae70d31f5 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h @@ -123,6 +123,11 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp) return 0; } +static inline unsigned int cpumask_first_zero(const struct cpumask *srcp) +{ + return 0; +} + static inline unsigned int cpumask_first_and(const struct cpumask *srcp1, const struct cpumask *srcp2) { @@ -202,6 +207,17 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp) } /** + * cpumask_first_zero - get the first unset cpu in a cpumask + * @srcp: the cpumask pointer + * + * Returns >= nr_cpu_ids if all cpus are set. + */ +static inline unsigned int cpumask_first_zero(const struct cpumask *srcp) +{ + return find_first_zero_bit(cpumask_bits(srcp), nr_cpumask_bits); +} + +/** * cpumask_first_and - return the first cpu from *srcp1 & *srcp2 * @src1p: the first input * @src2p: the second input |