* [PATCH] Define smp_call_function_mask() on uniprocessor builds
@ 2007-10-24 8:51 Avi Kivity
2007-10-24 14:43 ` Andrew Morton
0 siblings, 1 reply; 3+ messages in thread
From: Avi Kivity @ 2007-10-24 8:51 UTC (permalink / raw)
To: Linus Torvalds
Cc: kvm-devel, linux-kernel, jeff, bunk, Andrew Morton, Avi Kivity
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@qumranet.com>
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 */
/*
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] Define smp_call_function_mask() on uniprocessor builds
2007-10-24 8:51 [PATCH] Define smp_call_function_mask() on uniprocessor builds Avi Kivity
@ 2007-10-24 14:43 ` Andrew Morton
2007-10-24 14:54 ` Avi Kivity
0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2007-10-24 14:43 UTC (permalink / raw)
To: Avi Kivity; +Cc: Linus Torvalds, kvm-devel, linux-kernel, jeff, bunk
On Wed, 24 Oct 2007 10:51:25 +0200 Avi Kivity <avi@qumranet.com> 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@qumranet.com>
>
> 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.
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] Define smp_call_function_mask() on uniprocessor builds
2007-10-24 14:43 ` Andrew Morton
@ 2007-10-24 14:54 ` Avi Kivity
0 siblings, 0 replies; 3+ messages in thread
From: Avi Kivity @ 2007-10-24 14:54 UTC (permalink / raw)
To: Andrew Morton; +Cc: Linus Torvalds, kvm-devel, linux-kernel, jeff, bunk
Andrew Morton wrote:
> On Wed, 24 Oct 2007 10:51:25 +0200 Avi Kivity <avi@qumranet.com> 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@qumranet.com>
>>
>> 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.
>
>
Right. Ingo sent a patch which does this.
[I can't think of a way to use that int though]
> An inlined C function will provide the needed references to the arguments -
> no need for those funny (void) thingies. And it will provide typechecking.
>
Last time I did this (on smp_call_function_single()), the build broke on
a zillion-and-a-half archs due to include file hell. That got patched
into a macro. I saw the cpumask_t in there and got cold feet.
--
error compiling committee.c: too many arguments to function
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-10-24 14:55 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-24 8:51 [PATCH] Define smp_call_function_mask() on uniprocessor builds Avi Kivity
2007-10-24 14:43 ` Andrew Morton
2007-10-24 14:54 ` Avi Kivity
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox