[PATCH] arm64/bpf: use movn/movk/movk sequence to generate kernel addresses
From: Will Deacon <hidden>
Date: 2018-11-27 18:21:48
Also in:
lkml
From: Will Deacon <hidden>
Date: 2018-11-27 18:21:48
Also in:
lkml
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 <redacted> ---
Acked-by: Will Deacon <redacted> Denial, Alexei, shall I take this via arm64, or would you rather take it via davem? Cheers, Will