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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.





[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux