Re: [PATCH] cpumask: provide a dummy cpumask_next_wrap

From: David Miller
Date: Tue Aug 14 2018 - 09:26:57 EST


From: Arnd Bergmann <arnd@xxxxxxxx>
Date: Mon, 13 Aug 2018 23:55:16 +0200

> The virtio_net driver has become the first one to call cpumask_next_wrap()
> even if CONFIG_SMP is disabled, leading to a build error:
>
> drivers/net/virtio_net.c: In function 'virtnet_set_affinity':
> drivers/net/virtio_net.c:1916:10: error: implicit declaration of function 'cpumask_next_wrap'; did you mean 'cpumask_next_and'? [-Werror=implicit-function-declaration]
> cpu = cpumask_next_wrap(cpu, cpu_online_mask,
>
> Add a stub function along the lines of cpumask_first(), cpumask_next() etc.
> I'm not entirely sure what should be returned in this case, but at
> least for virtio_net, anything should work.
>
> Fixes: 2ca653d607ce ("virtio_net: Stripe queue affinities across cores.")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

This should already be fixed in my tree, and:

> +static inline int cpumask_next_wrap(int n, const struct cpumask *mask, int start, bool wrap)
> +{
> + return n;
> +}

this doesn't handle the "n==0 && wrap" case properly, in that situation you should
return '1'.