On Mon, Sep 27, 2010 at 4:27 PM, Guenter Roeck <guenter.roeck@xxxxxxxxxxxx> wrote: > On Mon, Sep 27, 2010 at 09:02:57AM -0400, Pekka Enberg wrote: >> On Mon, Sep 27, 2010 at 3:59 PM, Ingo Molnar <mingo@xxxxxxx> wrote: >> > >> > * Guenter Roeck <guenter.roeck@xxxxxxxxxxxx> wrote: >> > >> >> +#ifdef CONFIG_SMP >> >> +#endif >> >> +#ifdef CONFIG_SMP >> >> +#endif >> > >> > Hm, this tickles my uglo-meter. Is there no cleaner way, preferably one >> > that doesnt involve preprocessor directives? >> >> Implement cpu_sibling_mask() on UP so that the loop goes away? > > So what is the take ? Looks like Linus won't accept my patch without someone > else signing off on it. If the uglo-meter prevents it from being accepted, > I'll be happy to submit the SMP cleanup patch instead. As I mentioned > before, I would prefer that to go into -next. I'd _much_ rather see cpu_sibling_mask() on UP, and just have the loop go away. But that would be a generic change. Something like the (UNTESTED!) attached. It returns a NULL, since it would always be a bug to actually _use_ the (nonexistent) mask. And that's fine for things like for_each_cpu() that will then happily ignore the mask. Ingo, does this make those randconfig things work? I think it's prettier than the horrible "sprinkle #ifdef CONFIG_SMP around in random places". Linus
include/linux/smp.h | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/include/linux/smp.h b/include/linux/smp.h index cfa2d20..ad48077 100644 --- a/include/linux/smp.h +++ b/include/linux/smp.h @@ -149,6 +149,8 @@ smp_call_function_any(const struct cpumask *mask, void (*func)(void *info), return smp_call_function_single(0, func, info, wait); } +static inline const struct cpumask *cpu_sibling_mask(int cpu) { return NULL; } + #endif /* !SMP */ /*
_______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors