Re: [RFC 20/22] x86/relocs: Add option to generate 64-bit relocations

From: H. Peter Anvin
Date: Wed Jul 19 2017 - 20:17:20 EST


<cmetcalf@xxxxxxxxxxxx>,"Paul E . McKenney" <paulmck@xxxxxxxxxxxxxxxxxx>,Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>,Christopher Li <sparse@xxxxxxxxxxx>,Dou Liyang <douly.fnst@xxxxxxxxxxxxxx>,Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>,Daniel Borkmann <daniel@xxxxxxxxxxxxx>,Markus Trippelsdorf <markus@xxxxxxxxxxxxxxx>,Peter Foley <pefoley2@xxxxxxxxxxx>,Steven Rostedt <rostedt@xxxxxxxxxxx>,Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>,Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>,Catalin Marinas <catalin.marinas@xxxxxxx>,Matthew Wilcox <mawilcox@xxxxxxxxxxxxx>,Michal Hocko <mhocko@xxxxxxxx>,Rob Landley <rob@xxxxxxxxxxx>,Jiri Kosina <jkosina@xxxxxxx>,"H . J . Lu" <hjl.tools@xxxxxxxxx>,Paul Bolle <pebolle@xxxxxxxxxx>,Baoquan He <bhe@xxxxxxxxxx>,Daniel Micay <danielmicay@xxxxxxxxx>,the arch/x86 maintainers <x86@xxxxxxxxxx>,linux-crypto@xxxxxxxxxxxxxxx,LKML <linux-kernel@xxxxxxxxxxxxxxx>,xen-devel@xxxxxxxxxxxxxxxxxxxx,kvm list <kvm@xxxxxxxxxxxxxxx>,Linux PM list
<linux-pm@xxxxxxxxxxxxxxx>,linux-arch <linux-arch@xxxxxxxxxxxxxxx>,linux-sparse@xxxxxxxxxxxxxxx,Kernel Hardening <kernel-hardening@xxxxxxxxxxxxxxxxxx>
From: hpa@xxxxxxxxx
Message-ID: <0EF6FAAA-A99C-4F0D-9E4A-AD25E93957FB@xxxxxxxxx>

On July 19, 2017 4:25:56 PM PDT, Thomas Garnier <thgarnie@xxxxxxxxxx> wrote:
>On Wed, Jul 19, 2017 at 4:08 PM, H. Peter Anvin <hpa@xxxxxxxxx> wrote:
>> On 07/19/17 15:47, Thomas Garnier wrote:
>>> On Wed, Jul 19, 2017 at 3:33 PM, H. Peter Anvin <hpa@xxxxxxxxx>
>wrote:
>>>> On 07/18/17 15:33, Thomas Garnier wrote:
>>>>> The x86 relocation tool generates a list of 32-bit signed
>integers. There
>>>>> was no need to use 64-bit integers because all addresses where
>above the 2G
>>>>> top of the memory.
>>>>>
>>>>> This change add a large-reloc option to generate 64-bit unsigned
>integers.
>>>>> It can be used when the kernel plan to go below the top 2G and
>32-bit
>>>>> integers are not enough.
>>>>
>>>> Why on Earth? This would only be necessary if the *kernel itself*
>was
>>>> more than 2G, which isn't going to happen for the forseeable
>future.
>>>
>>> Because the relocation integer is an absolute address, not an offset
>>> in the binary. Next iteration, I can try using a 32-bit offset for
>>> everyone.
>>
>> It is an absolute address *as the kernel was originally linked*, for
>> obvious reasons.
>
>Sure when the kernel was just above 0xffffffff80000000, it doesn't
>work when it goes down to 0xffffffff00000000. That's why using an
>offset might make more sense in general.
>
>>
>> -hpa
>>

What is the motivation for changing the pre linked address at all?
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.