Loading Makefile +1 −1 Original line number Diff line number Diff line VERSION = 4 PATCHLEVEL = 4 SUBLEVEL = 0 EXTRAVERSION = -rc7 EXTRAVERSION = -rc8 NAME = Blurry Fish Butt # *DOCUMENTATION* Loading arch/arm/net/bpf_jit_32.c +3 −16 Original line number Diff line number Diff line Loading @@ -187,19 +187,6 @@ static inline int mem_words_used(struct jit_ctx *ctx) return fls(ctx->seen & SEEN_MEM); } static inline bool is_load_to_a(u16 inst) { switch (inst) { case BPF_LD | BPF_W | BPF_LEN: case BPF_LD | BPF_W | BPF_ABS: case BPF_LD | BPF_H | BPF_ABS: case BPF_LD | BPF_B | BPF_ABS: return true; default: return false; } } static void jit_fill_hole(void *area, unsigned int size) { u32 *ptr; Loading @@ -211,7 +198,6 @@ static void jit_fill_hole(void *area, unsigned int size) static void build_prologue(struct jit_ctx *ctx) { u16 reg_set = saved_regs(ctx); u16 first_inst = ctx->skf->insns[0].code; u16 off; #ifdef CONFIG_FRAME_POINTER Loading Loading @@ -241,7 +227,7 @@ static void build_prologue(struct jit_ctx *ctx) emit(ARM_MOV_I(r_X, 0), ctx); /* do not leak kernel data to userspace */ if ((first_inst != (BPF_RET | BPF_K)) && !(is_load_to_a(first_inst))) if (bpf_needs_clear_a(&ctx->skf->insns[0])) emit(ARM_MOV_I(r_A, 0), ctx); /* stack space for the BPF_MEM words */ Loading Loading @@ -770,6 +756,7 @@ static int build_body(struct jit_ctx *ctx) case BPF_ALU | BPF_RSH | BPF_K: if (unlikely(k > 31)) return -1; if (k) emit(ARM_LSR_I(r_A, r_A, k), ctx); break; case BPF_ALU | BPF_RSH | BPF_X: Loading arch/mips/net/bpf_jit.c +1 −15 Original line number Diff line number Diff line Loading @@ -521,19 +521,6 @@ static inline u16 align_sp(unsigned int num) return num; } static bool is_load_to_a(u16 inst) { switch (inst) { case BPF_LD | BPF_W | BPF_LEN: case BPF_LD | BPF_W | BPF_ABS: case BPF_LD | BPF_H | BPF_ABS: case BPF_LD | BPF_B | BPF_ABS: return true; default: return false; } } static void save_bpf_jit_regs(struct jit_ctx *ctx, unsigned offset) { int i = 0, real_off = 0; Loading Loading @@ -614,7 +601,6 @@ static unsigned int get_stack_depth(struct jit_ctx *ctx) static void build_prologue(struct jit_ctx *ctx) { u16 first_inst = ctx->skf->insns[0].code; int sp_off; /* Calculate the total offset for the stack pointer */ Loading @@ -641,7 +627,7 @@ static void build_prologue(struct jit_ctx *ctx) emit_jit_reg_move(r_X, r_zero, ctx); /* Do not leak kernel data to userspace */ if ((first_inst != (BPF_RET | BPF_K)) && !(is_load_to_a(first_inst))) if (bpf_needs_clear_a(&ctx->skf->insns[0])) emit_jit_reg_move(r_A, r_zero, ctx); } Loading arch/mips/vdso/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ aflags-vdso := $(ccflags-vdso) \ # the comments on that file. # ifndef CONFIG_CPU_MIPSR6 ifeq ($(call ld-ifversion, -lt, 22500000, y),) ifeq ($(call ld-ifversion, -lt, 22500000, y),y) $(warning MIPS VDSO requires binutils >= 2.25) obj-vdso-y := $(filter-out gettimeofday.o, $(obj-vdso-y)) ccflags-vdso += -DDISABLE_MIPS_VDSO Loading arch/powerpc/net/bpf_jit_comp.c +2 −11 Original line number Diff line number Diff line Loading @@ -78,19 +78,10 @@ static void bpf_jit_build_prologue(struct bpf_prog *fp, u32 *image, PPC_LI(r_X, 0); } switch (filter[0].code) { case BPF_RET | BPF_K: case BPF_LD | BPF_W | BPF_LEN: case BPF_LD | BPF_W | BPF_ABS: case BPF_LD | BPF_H | BPF_ABS: case BPF_LD | BPF_B | BPF_ABS: /* first instruction sets A register (or is RET 'constant') */ break; default: /* make sure we dont leak kernel information to user */ if (bpf_needs_clear_a(&filter[0])) PPC_LI(r_A, 0); } } static void bpf_jit_build_epilogue(u32 *image, struct codegen_context *ctx) { Loading Loading
Makefile +1 −1 Original line number Diff line number Diff line VERSION = 4 PATCHLEVEL = 4 SUBLEVEL = 0 EXTRAVERSION = -rc7 EXTRAVERSION = -rc8 NAME = Blurry Fish Butt # *DOCUMENTATION* Loading
arch/arm/net/bpf_jit_32.c +3 −16 Original line number Diff line number Diff line Loading @@ -187,19 +187,6 @@ static inline int mem_words_used(struct jit_ctx *ctx) return fls(ctx->seen & SEEN_MEM); } static inline bool is_load_to_a(u16 inst) { switch (inst) { case BPF_LD | BPF_W | BPF_LEN: case BPF_LD | BPF_W | BPF_ABS: case BPF_LD | BPF_H | BPF_ABS: case BPF_LD | BPF_B | BPF_ABS: return true; default: return false; } } static void jit_fill_hole(void *area, unsigned int size) { u32 *ptr; Loading @@ -211,7 +198,6 @@ static void jit_fill_hole(void *area, unsigned int size) static void build_prologue(struct jit_ctx *ctx) { u16 reg_set = saved_regs(ctx); u16 first_inst = ctx->skf->insns[0].code; u16 off; #ifdef CONFIG_FRAME_POINTER Loading Loading @@ -241,7 +227,7 @@ static void build_prologue(struct jit_ctx *ctx) emit(ARM_MOV_I(r_X, 0), ctx); /* do not leak kernel data to userspace */ if ((first_inst != (BPF_RET | BPF_K)) && !(is_load_to_a(first_inst))) if (bpf_needs_clear_a(&ctx->skf->insns[0])) emit(ARM_MOV_I(r_A, 0), ctx); /* stack space for the BPF_MEM words */ Loading Loading @@ -770,6 +756,7 @@ static int build_body(struct jit_ctx *ctx) case BPF_ALU | BPF_RSH | BPF_K: if (unlikely(k > 31)) return -1; if (k) emit(ARM_LSR_I(r_A, r_A, k), ctx); break; case BPF_ALU | BPF_RSH | BPF_X: Loading
arch/mips/net/bpf_jit.c +1 −15 Original line number Diff line number Diff line Loading @@ -521,19 +521,6 @@ static inline u16 align_sp(unsigned int num) return num; } static bool is_load_to_a(u16 inst) { switch (inst) { case BPF_LD | BPF_W | BPF_LEN: case BPF_LD | BPF_W | BPF_ABS: case BPF_LD | BPF_H | BPF_ABS: case BPF_LD | BPF_B | BPF_ABS: return true; default: return false; } } static void save_bpf_jit_regs(struct jit_ctx *ctx, unsigned offset) { int i = 0, real_off = 0; Loading Loading @@ -614,7 +601,6 @@ static unsigned int get_stack_depth(struct jit_ctx *ctx) static void build_prologue(struct jit_ctx *ctx) { u16 first_inst = ctx->skf->insns[0].code; int sp_off; /* Calculate the total offset for the stack pointer */ Loading @@ -641,7 +627,7 @@ static void build_prologue(struct jit_ctx *ctx) emit_jit_reg_move(r_X, r_zero, ctx); /* Do not leak kernel data to userspace */ if ((first_inst != (BPF_RET | BPF_K)) && !(is_load_to_a(first_inst))) if (bpf_needs_clear_a(&ctx->skf->insns[0])) emit_jit_reg_move(r_A, r_zero, ctx); } Loading
arch/mips/vdso/Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ aflags-vdso := $(ccflags-vdso) \ # the comments on that file. # ifndef CONFIG_CPU_MIPSR6 ifeq ($(call ld-ifversion, -lt, 22500000, y),) ifeq ($(call ld-ifversion, -lt, 22500000, y),y) $(warning MIPS VDSO requires binutils >= 2.25) obj-vdso-y := $(filter-out gettimeofday.o, $(obj-vdso-y)) ccflags-vdso += -DDISABLE_MIPS_VDSO Loading
arch/powerpc/net/bpf_jit_comp.c +2 −11 Original line number Diff line number Diff line Loading @@ -78,19 +78,10 @@ static void bpf_jit_build_prologue(struct bpf_prog *fp, u32 *image, PPC_LI(r_X, 0); } switch (filter[0].code) { case BPF_RET | BPF_K: case BPF_LD | BPF_W | BPF_LEN: case BPF_LD | BPF_W | BPF_ABS: case BPF_LD | BPF_H | BPF_ABS: case BPF_LD | BPF_B | BPF_ABS: /* first instruction sets A register (or is RET 'constant') */ break; default: /* make sure we dont leak kernel information to user */ if (bpf_needs_clear_a(&filter[0])) PPC_LI(r_A, 0); } } static void bpf_jit_build_epilogue(u32 *image, struct codegen_context *ctx) { Loading