Re: [PATCH] Define smp_call_function_mask() on uniprocessor builds

From: Andrew Morton
Date: Wed Oct 24 2007 - 10:44:39 EST


On Wed, 24 Oct 2007 10:51:25 +0200 Avi Kivity <avi@xxxxxxxxxxxx> wrote:

> Rather than #ifdef users of smp_call_function_mask(), define it as an
> empty macro to avoid build errors. The function explicitly prohibits
> callers from specifying the current cpu, so nothing needs to be done.
>
> This unbreaks uniprocessor KVM builds.
>
> Signed-off-by: Avi Kivity <avi@xxxxxxxxxxxx>
>
> diff --git a/include/linux/smp.h b/include/linux/smp.h
> index 259a13c..24e2e31 100644
> --- a/include/linux/smp.h
> +++ b/include/linux/smp.h
> @@ -108,6 +108,9 @@ static inline void smp_send_reschedule(int cpu) { }
> 0; \
> })
>
> +#define smp_call_function_mask(mask, func, info, wait) \
> + do { (void)(mask); (void)(func); (void)(info); (void)(wait); } while (0)
> +
> #endif /* !SMP */
>
> /*

The real smp_call_function_mask() returns int, so this version should do so
also.

An inlined C function will provide the needed references to the arguments -
no need for those funny (void) thingies. And it will provide typechecking.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/