Re: [PATCH] arm64/bpf: use movn/movk/movk sequence to generate kernel addresses

From: Daniel Borkmann
Date: Fri Nov 30 2018 - 05:07:38 EST


On 11/27/2018 07:24 PM, Daniel Borkmann wrote:
> On 11/27/2018 07:22 PM, Will Deacon wrote:
>> Hi Ard,
>>
>> On Fri, Nov 23, 2018 at 06:29:02PM +0100, Ard Biesheuvel wrote:
>>> On arm64, all executable code is guaranteed to reside in the vmalloc
>>> space (or the module space), and so jump targets will only use 48
>>> bits at most, and the remaining bits are guaranteed to be 0x1.
>>>
>>> This means we can generate an immediate jump address using a sequence
>>> of one MOVN (move wide negated) and two MOVK instructions, where the
>>> first one sets the lower 16 bits but also sets all top bits to 0x1.
>>>
>>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx>
>>> ---
>>
>> Acked-by: Will Deacon <will.deacon@xxxxxxx>
>>
>> Denial, Alexei, shall I take this via arm64, or would you rather take
>> it via davem?
>
> Yeah we can take it via bpf trees, thanks.

And now applied, thanks!