Re: [PATCH 1/2] x86/efi: Correct a tiny mistake in code comment
From: Bhupesh Sharma
Date: Wed Mar 08 2017 - 15:05:47 EST
On Wed, Mar 8, 2017 at 3:05 PM, Borislav Petkov <bp@xxxxxxxxx> wrote:
> On Wed, Mar 08, 2017 at 05:09:55PM +0800, Baoquan He wrote:
>> Yes, it looks better. I can repost with this change. Thanks.
>
> No it doesn't:
>
> #define EFI_VA_START ( -4 * (_AC(1, UL) << 30))
> #define EFI_VA_END (-68 * (_AC(1, UL) << 30))
>
> That's -4G (the shift by 30) and -68G, respectively.
>
>> > #define EFI_VA_START _AC(0xfffffffeffffffff, UL)
>> > #define EFI_VA_END _AC(0xffffffef00000000, UL)
>
> That is something which I need to type into a calculator first.
Right, my point was that this -4G convention stands out, as compared
to the rest of the addressing convention used throughout
'arch/x86/include/asm/pgtable_64_types.h'.
For e.g.:
#define __VMALLOC_BASE _AC(0xffffc90000000000, UL)
#define __VMEMMAP_BASE _AC(0xffffea0000000000, UL)
..
#define MODULES_END _AC(0xffffffffff000000, UL)
..
and so on.
Also it seems inconsistent to the convention used in
'Documentation/x86/x86_64/mm.txt'
As you noted in one of your other comments in this thread, this causes
a confusion as to whether the EFI_VA_END and EFI_VA_START macros need
to be swapped or the comments elsewhere in the x86 code which use
these MACROS are incorrect.
However, I think it is more a matter of code readability and each of
these styles have their own advantages.
I would be happy to cook up a patch to have uniformity in the
addressing conventions used across pgtable_64_types.h (if it is
required at all), but it would be a different topic and not related to
this patch.
Regards,
Bhupesh