ARM: net: bpf: move stack documentation
Move the stack documentation towards the top of the file, where it's relevant for things like the register layout. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
This commit is contained in:
parent
d1220efd23
commit
70ec3a6c2c
|
@ -27,6 +27,27 @@
|
||||||
|
|
||||||
int bpf_jit_enable __read_mostly;
|
int bpf_jit_enable __read_mostly;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* eBPF prog stack layout
|
||||||
|
*
|
||||||
|
* high
|
||||||
|
* original ARM_SP => +-----+ eBPF prologue
|
||||||
|
* |FP/LR|
|
||||||
|
* current ARM_FP => +-----+
|
||||||
|
* | ... | callee saved registers
|
||||||
|
* eBPF fp register => +-----+ <= (BPF_FP)
|
||||||
|
* | ... | eBPF JIT scratch space
|
||||||
|
* | | eBPF prog stack
|
||||||
|
* +-----+
|
||||||
|
* |RSVD | JIT scratchpad
|
||||||
|
* current ARM_SP => +-----+ <= (BPF_FP - STACK_SIZE)
|
||||||
|
* | |
|
||||||
|
* | ... | Function call stack
|
||||||
|
* | |
|
||||||
|
* +-----+
|
||||||
|
* low
|
||||||
|
*/
|
||||||
|
|
||||||
#define STACK_OFFSET(k) (k)
|
#define STACK_OFFSET(k) (k)
|
||||||
#define TMP_REG_1 (MAX_BPF_JIT_REG + 0) /* TEMP Register 1 */
|
#define TMP_REG_1 (MAX_BPF_JIT_REG + 0) /* TEMP Register 1 */
|
||||||
#define TMP_REG_2 (MAX_BPF_JIT_REG + 1) /* TEMP Register 2 */
|
#define TMP_REG_2 (MAX_BPF_JIT_REG + 1) /* TEMP Register 2 */
|
||||||
|
@ -1091,27 +1112,6 @@ static void build_prologue(struct jit_ctx *ctx)
|
||||||
|
|
||||||
u16 reg_set = 0;
|
u16 reg_set = 0;
|
||||||
|
|
||||||
/*
|
|
||||||
* eBPF prog stack layout
|
|
||||||
*
|
|
||||||
* high
|
|
||||||
* original ARM_SP => +-----+ eBPF prologue
|
|
||||||
* |FP/LR|
|
|
||||||
* current ARM_FP => +-----+
|
|
||||||
* | ... | callee saved registers
|
|
||||||
* eBPF fp register => +-----+ <= (BPF_FP)
|
|
||||||
* | ... | eBPF JIT scratch space
|
|
||||||
* | | eBPF prog stack
|
|
||||||
* +-----+
|
|
||||||
* |RSVD | JIT scratchpad
|
|
||||||
* current A64_SP => +-----+ <= (BPF_FP - STACK_SIZE)
|
|
||||||
* | |
|
|
||||||
* | ... | Function call stack
|
|
||||||
* | |
|
|
||||||
* +-----+
|
|
||||||
* low
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Save callee saved registers. */
|
/* Save callee saved registers. */
|
||||||
reg_set |= (1<<r4) | (1<<r5) | (1<<r6) | (1<<r7) | (1<<r8) | (1<<r10);
|
reg_set |= (1<<r4) | (1<<r5) | (1<<r6) | (1<<r7) | (1<<r8) | (1<<r10);
|
||||||
#ifdef CONFIG_FRAME_POINTER
|
#ifdef CONFIG_FRAME_POINTER
|
||||||
|
|
Loading…
Reference in New Issue