Re: [PATCH] arm64/bpf: use movn/movk/movk sequence to generate kernel addresses
From: Daniel Borkmann
Date: Tue Nov 27 2018 - 13:24:46 EST
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.
Cheers,
Daniel