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

From: Jan Beulich
Date: Fri Jan 09 2015 - 07:57:07 EST


>>> On 09.01.15 at 13:51, <david.vrabel@xxxxxxxxxx> wrote:
> On 09/01/15 09:57, Jan Beulich wrote:
>>>>> On 08.01.15 at 18:01, <JGross@xxxxxxxx> wrote:
>>> @@ -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))

Even better indeed. Just one more point: Strictly speaking
__pa(high_memory) is invalid, as __pa() is defined for low
memory only. Hence perhaps PFN_UP(__pa(high_memory - 1))?

Jan

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