Re: [Xen-devel] [PATCH 3/3] xen: use correct type for physical addresses

From: David Vrabel
Date: Fri Jan 09 2015 - 07:51:42 EST


On 09/01/15 09:57, Jan Beulich wrote:
>>>> On 08.01.15 at 18:01, <JGross@xxxxxxxx> wrote:
>> --- a/arch/x86/xen/setup.c
>> +++ b/arch/x86/xen/setup.c
>> @@ -140,7 +140,7 @@ static void __init xen_del_extra_mem(u64 start, u64 size)
>> unsigned long __ref xen_chk_extra_mem(unsigned long pfn)
>> {
>> int i;
>> - unsigned long addr = PFN_PHYS(pfn);
>> + u64 addr = PFN_PHYS(pfn);
>
> Isn't phys_addr_t the type to use here?

Agreed.

>> @@ -284,7 +286,7 @@ static void __init xen_update_mem_tables(unsigned long pfn, unsigned long mfn)
>> }
>>
>> /* Update kernel mapping, but not for highmem. */
>> - if ((pfn << PAGE_SHIFT) >= __pa(high_memory))
>> + if (PFN_PHYS(pfn) >= (u64)(__pa(high_memory)))
>
> I don't think you really need the cast on the right side - __pa()
> should be returning a value of suitable type (and unsigned long
> would be sufficient for anything up to and including high_memory).

I'd prefer:

if (pfn >= PFN_DOWN(__pa(high_memory))

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