Re: mips build failures due to commit 8dd928915a73 (mips: fix up obsolete cpu function usage)

From: Rusty Russell
Date: Tue Apr 21 2015 - 07:13:33 EST


Aaro Koskinen <aaro.koskinen@xxxxxx> writes:
> Hi,
>
> On Mon, Apr 20, 2015 at 12:40:28PM -0700, Guenter Roeck wrote:
>> the upstream kernel fails to build mips:nlm_xlp_defconfig,
>> mips:nlm_xlp_defconfig, mips:cavium_octeon_defconfig, and possibly
>> other targets, with errors such as
>>
>> arch/mips/kernel/smp.c:211:2: error:
>> passing argument 2 of 'cpumask_set_cpu' discards 'volatile' qualifier
>> from pointer target type
>> arch/mips/kernel/process.c:52:2: error:
>> passing argument 2 of 'cpumask_test_cpu' discards 'volatile' qualifier
>> from pointer target type
>> arch/mips/cavium-octeon/smp.c:242:2: error:
>> passing argument 2 of 'cpumask_clear_cpu' discards 'volatile' qualifier
>> from pointer target type
>>
>> The problem was introduced with commit 8dd928915a73 (" mips: fix up
>> obsolete cpu function usage"). I would send a patch to fix it, but I
>> am not sure if removing 'volatile' from the variable declaration(s)
>> would be a good idea.
>
> I think removing volatile from cpu_callin_map declaration should be OK,
> since test_cpu (only reader) uses test_bit which takes care of it:
>
> static inline int test_bit(int nr, const volatile unsigned long *addr)

No, that got replaced too, with cpumask_test_cpu AFAICT.

You can open-code it, like so:

test_bit(0, cpumask_bits(cpu_callin_map));

But you probably want to put a barrier in that loop instead of relying
on volatile.

Thanks,
Rusty.
--
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/