diff options
author | Willem de Bruijn <willemb@google.com> | 2018-08-12 16:14:03 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-08-13 19:05:05 +0300 |
commit | 9af18e56d43ca4864ce65c3542c513827c2697de (patch) | |
tree | 2b0e3b37fdd0d06b3cd3befd5b89c0f325a1f9b8 | |
parent | 7c53a722459c1d6ffb0f5b2058c06ca8980b8600 (diff) | |
download | linux-9af18e56d43ca4864ce65c3542c513827c2697de.tar.xz |
cpumask: make cpumask_next_wrap available without smp
The kbuild robot shows build failure on machines without CONFIG_SMP:
drivers/net/virtio_net.c:1916:10: error:
implicit declaration of function 'cpumask_next_wrap'
cpumask_next_wrap is exported from lib/cpumask.o, which has
lib-$(CONFIG_SMP) += cpumask.o
same as other functions, also define it as static inline in the
NR_CPUS==1 branch in include/linux/cpumask.h.
If wrap is true and next == start, return nr_cpumask_bits, or 1.
Else wrap across the range of valid cpus, here [0].
Fixes: 2ca653d607ce ("virtio_net: Stripe queue affinities across cores.")
Signed-off-by: Willem de Bruijn <willemb@google.com>
Tested-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/linux/cpumask.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index 57f20a0a7794..147bdec42215 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h @@ -159,6 +159,13 @@ static inline unsigned int cpumask_next_and(int n, return n+1; } +static inline unsigned int cpumask_next_wrap(int n, const struct cpumask *mask, + int start, bool wrap) +{ + /* cpu0 unless stop condition, wrap and at cpu0, then nr_cpumask_bits */ + return (wrap && n == 0); +} + /* cpu must be a valid cpu, ie 0, so there's no other choice. */ static inline unsigned int cpumask_any_but(const struct cpumask *mask, unsigned int cpu) |