Re: [PATCH 1/1] cpumask: Change cpumask_of_cpu to use cpumask_of_cpu_map

From: Mike Travis
Date: Thu Jul 24 2008 - 13:15:30 EST


Bert Wesarg wrote:
> Hi,
>
> On Wed, Jul 23, 2008 at 19:18, Mike Travis <travis@xxxxxxx> wrote:
>> --- linux-2.6.tip.orig/arch/x86/kernel/setup_percpu.c
>> +++ linux-2.6.tip/arch/x86/kernel/setup_percpu.c
>> @@ -80,8 +80,15 @@ static void __init setup_per_cpu_maps(vo
>> #endif
>> }
>>
>> -#ifdef CONFIG_HAVE_CPUMASK_OF_CPU_MAP
>> -cpumask_t *cpumask_of_cpu_map __read_mostly;
>> +#ifdef CONFIG_HAVE_CPUMASK_OF_CPU_MAP_PTR
>> +/*
>> + * Configure an initial cpumask_of_cpu(0) for early users
>> + */
>> +static cpumask_t initial_cpumask_of_cpu_map __initdata = (cpumask_t) { {
>> + [BITS_TO_LONGS(NR_CPUS)-1] = 1
>> +} };
> This looks weird, first one missing {} pair, which may explain Ingo's
> build error.

Yes the compiler was pretty finicky, but it compiled with gcc-4.2.4. I'll
try out some other versions. But Rusty's different method of statically
initializing the array would replace the above anyways.

.... Second, why do you want to set the last unsigned long to
> one? Shouldn't this be the first?

The MSB of the cpumask is the highest numbered cpu, the LSB is the lowest.
(Caught me early on as well.)

Thanks,
Mike

>
> Regards
> Bert
>
>
>> +cpumask_t *cpumask_of_cpu_map __read_mostly =
>> + (cpumask_t *)&initial_cpumask_of_cpu_map;
>> EXPORT_SYMBOL(cpumask_of_cpu_map);
>>

--
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/