svn commit: r293775 - head/sys/boot/uboot/lib

Steven Hartland steven.hartland at multiplay.co.uk
Wed Jan 13 00:41:27 UTC 2016


Was this meant to be a full revert as you now have:

subldr = rounddown2((uintptr_t)_start, KERN_ALIGN);

vs the original:

subldr = rounddown2((uint64_t)(uintptr_t)_start, KERN_ALIGN);

i.e. missing the final conversion to uint64_t?



On 13/01/2016 00:25, Ian Lepore wrote:
> On Tue, 2016-01-12 at 22:49 +0000, Steven Hartland wrote:
>> I think this breaks arm arches:
>> /usr/home/smh/freebsd/base/head1/sys/boot/uboot/lib/copy.c:103:24:
>> error: use of undeclared identifier 'uintfptr_t'
>>                   subldr = rounddown2((uintfptr_t)_start, KERN_ALIGN);
>>                                        ^
>> /usr/home/smh/freebsd/base/head1/sys/boot/uboot/lib/../../../sys/para
>> m.h:295:28:
>> note: expanded from macro 'rounddown2'
>> #define rounddown2(x, y) ((x)&(~((y)-1)))          /* if y is power
>> of
>> two */
>>
> Ooops, sorry.  Should be fixed now.
>
> -- Ian
>
>> On 12/01/2016 16:31, Ian Lepore wrote:
>>> Author: ian
>>> Date: Tue Jan 12 16:31:07 2016
>>> New Revision: 293775
>>> URL: https://svnweb.freebsd.org/changeset/base/293775
>>>
>>> Log:
>>>     Cast using uintfptr_t and eliminate the cast to uint64_t which
>>> is uneeded
>>>     because rounding down cannot increase the number of bits needed
>>> to express
>>>     the result.
>>>     
>>>     I had no idea there was such a thing as uintfptr_t.
>>>     
>>>     Requested by: bde
>>>
>>> Modified:
>>>     head/sys/boot/uboot/lib/copy.c
>>>
>>> Modified: head/sys/boot/uboot/lib/copy.c
>>> ===================================================================
>>> ===========
>>> --- head/sys/boot/uboot/lib/copy.c	Tue Jan 12 16:21:34 2016	
>>> (r293774)
>>> +++ head/sys/boot/uboot/lib/copy.c	Tue Jan 12 16:31:07 2016	
>>> (r293775)
>>> @@ -100,7 +100,7 @@ uboot_loadaddr(u_int type, void *data, u
>>>    
>>>    		biggest_block = 0;
>>>    		biggest_size = 0;
>>> -		subldr = rounddown2((uint64_t)(uintptr_t)_start,
>>> KERN_ALIGN);
>>> +		subldr = rounddown2((uintfptr_t)_start,
>>> KERN_ALIGN);
>>>    		eubldr = roundup2((uint64_t)uboot_heap_end,
>>> KERN_ALIGN);
>>>    		for (i = 0; i < si->mr_no; i++) {
>>>    			if (si->mr[i].flags != MR_ATTR_DRAM)
>>>
>>



More information about the svn-src-all mailing list