svn commit: r355241 - head/sys/kern

Mateusz Guzik mjguzik at gmail.com
Wed Dec 4 03:47:31 UTC 2019


On 12/2/19, John Baldwin <jhb at freebsd.org> wrote:
> On 11/30/19 11:33 AM, Mateusz Guzik wrote:
>> Author: mjg
>> Date: Sat Nov 30 19:33:02 2019
>> New Revision: 355241
>> URL: https://svnweb.freebsd.org/changeset/base/355241
>>
>> Log:
>>   smp: cast the read in quiesce_all_critical through void *
>>
>>   Fixes compilation on some 32-bit arm platforms.
>>
>>   Sponsored by:	The FreeBSD Foundation
>>
>> Modified:
>>   head/sys/kern/subr_smp.c
>>
>> Modified: head/sys/kern/subr_smp.c
>> ==============================================================================
>> --- head/sys/kern/subr_smp.c	Sat Nov 30 19:21:29 2019	(r355240)
>> +++ head/sys/kern/subr_smp.c	Sat Nov 30 19:33:02 2019	(r355241)
>> @@ -952,7 +952,7 @@ quiesce_all_critical(void)
>>  				break;
>>  			cpu_spinwait();
>>  			newtd = (struct thread *)
>> -			    atomic_load_acq_ptr((u_long *)pcpu->pc_curthread);
>> +			    atomic_load_acq_ptr((void *)pcpu->pc_curthread);
>
> Why not uintptr_t *?  I think that's the defined type for atomic_*_ptr
> anyway?
>

I have no strong opinion one way or the other. However, the real fix
would make these routines work without casting for cases like the
above.

-- 
Mateusz Guzik <mjguzik gmail.com>


More information about the svn-src-head mailing list