diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/boot/dts/sama5d3_gmac.dtsi | 2 | ||||
-rw-r--r-- | arch/arm/boot/dts/socfpga.dtsi | 4 | ||||
-rw-r--r-- | arch/arm/net/bpf_jit_32.c | 8 | ||||
-rw-r--r-- | arch/mips/net/bpf_jit.c | 8 | ||||
-rw-r--r-- | arch/powerpc/net/bpf_jit_comp.c | 8 | ||||
-rw-r--r-- | arch/s390/net/bpf_jit_comp.c | 4 | ||||
-rw-r--r-- | arch/sparc/net/bpf_jit_comp.c | 4 | ||||
-rw-r--r-- | arch/x86/net/bpf_jit_comp.c | 16 |
8 files changed, 29 insertions, 25 deletions
diff --git a/arch/arm/boot/dts/sama5d3_gmac.dtsi b/arch/arm/boot/dts/sama5d3_gmac.dtsi index a6cb0508762f..de5ed59fb446 100644 --- a/arch/arm/boot/dts/sama5d3_gmac.dtsi +++ b/arch/arm/boot/dts/sama5d3_gmac.dtsi | |||
@@ -74,7 +74,7 @@ | |||
74 | }; | 74 | }; |
75 | 75 | ||
76 | macb0: ethernet@f0028000 { | 76 | macb0: ethernet@f0028000 { |
77 | compatible = "cdns,pc302-gem", "cdns,gem"; | 77 | compatible = "atmel,sama5d3-gem"; |
78 | reg = <0xf0028000 0x100>; | 78 | reg = <0xf0028000 0x100>; |
79 | interrupts = <34 IRQ_TYPE_LEVEL_HIGH 3>; | 79 | interrupts = <34 IRQ_TYPE_LEVEL_HIGH 3>; |
80 | pinctrl-names = "default"; | 80 | pinctrl-names = "default"; |
diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfpga.dtsi index 4676f25e87a7..70fdd2064811 100644 --- a/arch/arm/boot/dts/socfpga.dtsi +++ b/arch/arm/boot/dts/socfpga.dtsi | |||
@@ -486,6 +486,8 @@ | |||
486 | clock-names = "stmmaceth"; | 486 | clock-names = "stmmaceth"; |
487 | resets = <&rst EMAC0_RESET>; | 487 | resets = <&rst EMAC0_RESET>; |
488 | reset-names = "stmmaceth"; | 488 | reset-names = "stmmaceth"; |
489 | snps,multicast-filter-bins = <256>; | ||
490 | snps,perfect-filter-entries = <128>; | ||
489 | status = "disabled"; | 491 | status = "disabled"; |
490 | }; | 492 | }; |
491 | 493 | ||
@@ -500,6 +502,8 @@ | |||
500 | clock-names = "stmmaceth"; | 502 | clock-names = "stmmaceth"; |
501 | resets = <&rst EMAC1_RESET>; | 503 | resets = <&rst EMAC1_RESET>; |
502 | reset-names = "stmmaceth"; | 504 | reset-names = "stmmaceth"; |
505 | snps,multicast-filter-bins = <256>; | ||
506 | snps,perfect-filter-entries = <128>; | ||
503 | status = "disabled"; | 507 | status = "disabled"; |
504 | }; | 508 | }; |
505 | 509 | ||
diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c index fb5503ce016f..a37b989a2f91 100644 --- a/arch/arm/net/bpf_jit_32.c +++ b/arch/arm/net/bpf_jit_32.c | |||
@@ -56,7 +56,7 @@ | |||
56 | #define FLAG_NEED_X_RESET (1 << 0) | 56 | #define FLAG_NEED_X_RESET (1 << 0) |
57 | 57 | ||
58 | struct jit_ctx { | 58 | struct jit_ctx { |
59 | const struct sk_filter *skf; | 59 | const struct bpf_prog *skf; |
60 | unsigned idx; | 60 | unsigned idx; |
61 | unsigned prologue_bytes; | 61 | unsigned prologue_bytes; |
62 | int ret0_fp_idx; | 62 | int ret0_fp_idx; |
@@ -465,7 +465,7 @@ static inline void update_on_xread(struct jit_ctx *ctx) | |||
465 | static int build_body(struct jit_ctx *ctx) | 465 | static int build_body(struct jit_ctx *ctx) |
466 | { | 466 | { |
467 | void *load_func[] = {jit_get_skb_b, jit_get_skb_h, jit_get_skb_w}; | 467 | void *load_func[] = {jit_get_skb_b, jit_get_skb_h, jit_get_skb_w}; |
468 | const struct sk_filter *prog = ctx->skf; | 468 | const struct bpf_prog *prog = ctx->skf; |
469 | const struct sock_filter *inst; | 469 | const struct sock_filter *inst; |
470 | unsigned i, load_order, off, condt; | 470 | unsigned i, load_order, off, condt; |
471 | int imm12; | 471 | int imm12; |
@@ -857,7 +857,7 @@ b_epilogue: | |||
857 | } | 857 | } |
858 | 858 | ||
859 | 859 | ||
860 | void bpf_jit_compile(struct sk_filter *fp) | 860 | void bpf_jit_compile(struct bpf_prog *fp) |
861 | { | 861 | { |
862 | struct jit_ctx ctx; | 862 | struct jit_ctx ctx; |
863 | unsigned tmp_idx; | 863 | unsigned tmp_idx; |
@@ -926,7 +926,7 @@ out: | |||
926 | return; | 926 | return; |
927 | } | 927 | } |
928 | 928 | ||
929 | void bpf_jit_free(struct sk_filter *fp) | 929 | void bpf_jit_free(struct bpf_prog *fp) |
930 | { | 930 | { |
931 | if (fp->jited) | 931 | if (fp->jited) |
932 | module_free(NULL, fp->bpf_func); | 932 | module_free(NULL, fp->bpf_func); |
diff --git a/arch/mips/net/bpf_jit.c b/arch/mips/net/bpf_jit.c index b87390a56a2f..05a56619ece2 100644 --- a/arch/mips/net/bpf_jit.c +++ b/arch/mips/net/bpf_jit.c | |||
@@ -131,7 +131,7 @@ | |||
131 | * @target: Memory location for the compiled filter | 131 | * @target: Memory location for the compiled filter |
132 | */ | 132 | */ |
133 | struct jit_ctx { | 133 | struct jit_ctx { |
134 | const struct sk_filter *skf; | 134 | const struct bpf_prog *skf; |
135 | unsigned int prologue_bytes; | 135 | unsigned int prologue_bytes; |
136 | u32 idx; | 136 | u32 idx; |
137 | u32 flags; | 137 | u32 flags; |
@@ -789,7 +789,7 @@ static int pkt_type_offset(void) | |||
789 | static int build_body(struct jit_ctx *ctx) | 789 | static int build_body(struct jit_ctx *ctx) |
790 | { | 790 | { |
791 | void *load_func[] = {jit_get_skb_b, jit_get_skb_h, jit_get_skb_w}; | 791 | void *load_func[] = {jit_get_skb_b, jit_get_skb_h, jit_get_skb_w}; |
792 | const struct sk_filter *prog = ctx->skf; | 792 | const struct bpf_prog *prog = ctx->skf; |
793 | const struct sock_filter *inst; | 793 | const struct sock_filter *inst; |
794 | unsigned int i, off, load_order, condt; | 794 | unsigned int i, off, load_order, condt; |
795 | u32 k, b_off __maybe_unused; | 795 | u32 k, b_off __maybe_unused; |
@@ -1369,7 +1369,7 @@ jmp_cmp: | |||
1369 | 1369 | ||
1370 | int bpf_jit_enable __read_mostly; | 1370 | int bpf_jit_enable __read_mostly; |
1371 | 1371 | ||
1372 | void bpf_jit_compile(struct sk_filter *fp) | 1372 | void bpf_jit_compile(struct bpf_prog *fp) |
1373 | { | 1373 | { |
1374 | struct jit_ctx ctx; | 1374 | struct jit_ctx ctx; |
1375 | unsigned int alloc_size, tmp_idx; | 1375 | unsigned int alloc_size, tmp_idx; |
@@ -1423,7 +1423,7 @@ out: | |||
1423 | kfree(ctx.offsets); | 1423 | kfree(ctx.offsets); |
1424 | } | 1424 | } |
1425 | 1425 | ||
1426 | void bpf_jit_free(struct sk_filter *fp) | 1426 | void bpf_jit_free(struct bpf_prog *fp) |
1427 | { | 1427 | { |
1428 | if (fp->jited) | 1428 | if (fp->jited) |
1429 | module_free(NULL, fp->bpf_func); | 1429 | module_free(NULL, fp->bpf_func); |
diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c index 82e82cadcde5..3afa6f4c1957 100644 --- a/arch/powerpc/net/bpf_jit_comp.c +++ b/arch/powerpc/net/bpf_jit_comp.c | |||
@@ -25,7 +25,7 @@ static inline void bpf_flush_icache(void *start, void *end) | |||
25 | flush_icache_range((unsigned long)start, (unsigned long)end); | 25 | flush_icache_range((unsigned long)start, (unsigned long)end); |
26 | } | 26 | } |
27 | 27 | ||
28 | static void bpf_jit_build_prologue(struct sk_filter *fp, u32 *image, | 28 | static void bpf_jit_build_prologue(struct bpf_prog *fp, u32 *image, |
29 | struct codegen_context *ctx) | 29 | struct codegen_context *ctx) |
30 | { | 30 | { |
31 | int i; | 31 | int i; |
@@ -121,7 +121,7 @@ static void bpf_jit_build_epilogue(u32 *image, struct codegen_context *ctx) | |||
121 | ((int)K < 0 ? ((int)K >= SKF_LL_OFF ? func##_negative_offset : func) : func##_positive_offset) | 121 | ((int)K < 0 ? ((int)K >= SKF_LL_OFF ? func##_negative_offset : func) : func##_positive_offset) |
122 | 122 | ||
123 | /* Assemble the body code between the prologue & epilogue. */ | 123 | /* Assemble the body code between the prologue & epilogue. */ |
124 | static int bpf_jit_build_body(struct sk_filter *fp, u32 *image, | 124 | static int bpf_jit_build_body(struct bpf_prog *fp, u32 *image, |
125 | struct codegen_context *ctx, | 125 | struct codegen_context *ctx, |
126 | unsigned int *addrs) | 126 | unsigned int *addrs) |
127 | { | 127 | { |
@@ -569,7 +569,7 @@ static int bpf_jit_build_body(struct sk_filter *fp, u32 *image, | |||
569 | return 0; | 569 | return 0; |
570 | } | 570 | } |
571 | 571 | ||
572 | void bpf_jit_compile(struct sk_filter *fp) | 572 | void bpf_jit_compile(struct bpf_prog *fp) |
573 | { | 573 | { |
574 | unsigned int proglen; | 574 | unsigned int proglen; |
575 | unsigned int alloclen; | 575 | unsigned int alloclen; |
@@ -693,7 +693,7 @@ out: | |||
693 | return; | 693 | return; |
694 | } | 694 | } |
695 | 695 | ||
696 | void bpf_jit_free(struct sk_filter *fp) | 696 | void bpf_jit_free(struct bpf_prog *fp) |
697 | { | 697 | { |
698 | if (fp->jited) | 698 | if (fp->jited) |
699 | module_free(NULL, fp->bpf_func); | 699 | module_free(NULL, fp->bpf_func); |
diff --git a/arch/s390/net/bpf_jit_comp.c b/arch/s390/net/bpf_jit_comp.c index a2cbd875543a..61e45b7c04d7 100644 --- a/arch/s390/net/bpf_jit_comp.c +++ b/arch/s390/net/bpf_jit_comp.c | |||
@@ -812,7 +812,7 @@ static struct bpf_binary_header *bpf_alloc_binary(unsigned int bpfsize, | |||
812 | return header; | 812 | return header; |
813 | } | 813 | } |
814 | 814 | ||
815 | void bpf_jit_compile(struct sk_filter *fp) | 815 | void bpf_jit_compile(struct bpf_prog *fp) |
816 | { | 816 | { |
817 | struct bpf_binary_header *header = NULL; | 817 | struct bpf_binary_header *header = NULL; |
818 | unsigned long size, prg_len, lit_len; | 818 | unsigned long size, prg_len, lit_len; |
@@ -875,7 +875,7 @@ out: | |||
875 | kfree(addrs); | 875 | kfree(addrs); |
876 | } | 876 | } |
877 | 877 | ||
878 | void bpf_jit_free(struct sk_filter *fp) | 878 | void bpf_jit_free(struct bpf_prog *fp) |
879 | { | 879 | { |
880 | unsigned long addr = (unsigned long)fp->bpf_func & PAGE_MASK; | 880 | unsigned long addr = (unsigned long)fp->bpf_func & PAGE_MASK; |
881 | struct bpf_binary_header *header = (void *)addr; | 881 | struct bpf_binary_header *header = (void *)addr; |
diff --git a/arch/sparc/net/bpf_jit_comp.c b/arch/sparc/net/bpf_jit_comp.c index 892a102671ad..1f76c22a6a75 100644 --- a/arch/sparc/net/bpf_jit_comp.c +++ b/arch/sparc/net/bpf_jit_comp.c | |||
@@ -354,7 +354,7 @@ do { *prog++ = BR_OPC | WDISP22(OFF); \ | |||
354 | * emit_jump() calls with adjusted offsets. | 354 | * emit_jump() calls with adjusted offsets. |
355 | */ | 355 | */ |
356 | 356 | ||
357 | void bpf_jit_compile(struct sk_filter *fp) | 357 | void bpf_jit_compile(struct bpf_prog *fp) |
358 | { | 358 | { |
359 | unsigned int cleanup_addr, proglen, oldproglen = 0; | 359 | unsigned int cleanup_addr, proglen, oldproglen = 0; |
360 | u32 temp[8], *prog, *func, seen = 0, pass; | 360 | u32 temp[8], *prog, *func, seen = 0, pass; |
@@ -808,7 +808,7 @@ out: | |||
808 | return; | 808 | return; |
809 | } | 809 | } |
810 | 810 | ||
811 | void bpf_jit_free(struct sk_filter *fp) | 811 | void bpf_jit_free(struct bpf_prog *fp) |
812 | { | 812 | { |
813 | if (fp->jited) | 813 | if (fp->jited) |
814 | module_free(NULL, fp->bpf_func); | 814 | module_free(NULL, fp->bpf_func); |
diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c index 99bef86ed6df..5c8cb8043c5a 100644 --- a/arch/x86/net/bpf_jit_comp.c +++ b/arch/x86/net/bpf_jit_comp.c | |||
@@ -211,10 +211,10 @@ struct jit_context { | |||
211 | bool seen_ld_abs; | 211 | bool seen_ld_abs; |
212 | }; | 212 | }; |
213 | 213 | ||
214 | static int do_jit(struct sk_filter *bpf_prog, int *addrs, u8 *image, | 214 | static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image, |
215 | int oldproglen, struct jit_context *ctx) | 215 | int oldproglen, struct jit_context *ctx) |
216 | { | 216 | { |
217 | struct sock_filter_int *insn = bpf_prog->insnsi; | 217 | struct bpf_insn *insn = bpf_prog->insnsi; |
218 | int insn_cnt = bpf_prog->len; | 218 | int insn_cnt = bpf_prog->len; |
219 | u8 temp[64]; | 219 | u8 temp[64]; |
220 | int i; | 220 | int i; |
@@ -235,7 +235,7 @@ static int do_jit(struct sk_filter *bpf_prog, int *addrs, u8 *image, | |||
235 | /* mov qword ptr [rbp-X],rbx */ | 235 | /* mov qword ptr [rbp-X],rbx */ |
236 | EMIT3_off32(0x48, 0x89, 0x9D, -stacksize); | 236 | EMIT3_off32(0x48, 0x89, 0x9D, -stacksize); |
237 | 237 | ||
238 | /* sk_convert_filter() maps classic BPF register X to R7 and uses R8 | 238 | /* bpf_convert_filter() maps classic BPF register X to R7 and uses R8 |
239 | * as temporary, so all tcpdump filters need to spill/fill R7(r13) and | 239 | * as temporary, so all tcpdump filters need to spill/fill R7(r13) and |
240 | * R8(r14). R9(r15) spill could be made conditional, but there is only | 240 | * R8(r14). R9(r15) spill could be made conditional, but there is only |
241 | * one 'bpf_error' return path out of helper functions inside bpf_jit.S | 241 | * one 'bpf_error' return path out of helper functions inside bpf_jit.S |
@@ -841,7 +841,7 @@ common_load: ctx->seen_ld_abs = true; | |||
841 | /* By design x64 JIT should support all BPF instructions | 841 | /* By design x64 JIT should support all BPF instructions |
842 | * This error will be seen if new instruction was added | 842 | * This error will be seen if new instruction was added |
843 | * to interpreter, but not to JIT | 843 | * to interpreter, but not to JIT |
844 | * or if there is junk in sk_filter | 844 | * or if there is junk in bpf_prog |
845 | */ | 845 | */ |
846 | pr_err("bpf_jit: unknown opcode %02x\n", insn->code); | 846 | pr_err("bpf_jit: unknown opcode %02x\n", insn->code); |
847 | return -EINVAL; | 847 | return -EINVAL; |
@@ -862,11 +862,11 @@ common_load: ctx->seen_ld_abs = true; | |||
862 | return proglen; | 862 | return proglen; |
863 | } | 863 | } |
864 | 864 | ||
865 | void bpf_jit_compile(struct sk_filter *prog) | 865 | void bpf_jit_compile(struct bpf_prog *prog) |
866 | { | 866 | { |
867 | } | 867 | } |
868 | 868 | ||
869 | void bpf_int_jit_compile(struct sk_filter *prog) | 869 | void bpf_int_jit_compile(struct bpf_prog *prog) |
870 | { | 870 | { |
871 | struct bpf_binary_header *header = NULL; | 871 | struct bpf_binary_header *header = NULL; |
872 | int proglen, oldproglen = 0; | 872 | int proglen, oldproglen = 0; |
@@ -932,7 +932,7 @@ out: | |||
932 | 932 | ||
933 | static void bpf_jit_free_deferred(struct work_struct *work) | 933 | static void bpf_jit_free_deferred(struct work_struct *work) |
934 | { | 934 | { |
935 | struct sk_filter *fp = container_of(work, struct sk_filter, work); | 935 | struct bpf_prog *fp = container_of(work, struct bpf_prog, work); |
936 | unsigned long addr = (unsigned long)fp->bpf_func & PAGE_MASK; | 936 | unsigned long addr = (unsigned long)fp->bpf_func & PAGE_MASK; |
937 | struct bpf_binary_header *header = (void *)addr; | 937 | struct bpf_binary_header *header = (void *)addr; |
938 | 938 | ||
@@ -941,7 +941,7 @@ static void bpf_jit_free_deferred(struct work_struct *work) | |||
941 | kfree(fp); | 941 | kfree(fp); |
942 | } | 942 | } |
943 | 943 | ||
944 | void bpf_jit_free(struct sk_filter *fp) | 944 | void bpf_jit_free(struct bpf_prog *fp) |
945 | { | 945 | { |
946 | if (fp->jited) { | 946 | if (fp->jited) { |
947 | INIT_WORK(&fp->work, bpf_jit_free_deferred); | 947 | INIT_WORK(&fp->work, bpf_jit_free_deferred); |