/Linux-v5.4/drivers/net/team/ |
D | team_mode_loadbalance.c | 263 struct sock_fprog_kern *fprog; in __fprog_create() local 268 fprog = kmalloc(sizeof(*fprog), GFP_KERNEL); in __fprog_create() 269 if (!fprog) in __fprog_create() 271 fprog->filter = kmemdup(filter, data_len, GFP_KERNEL); in __fprog_create() 272 if (!fprog->filter) { in __fprog_create() 273 kfree(fprog); in __fprog_create() 276 fprog->len = data_len / sizeof(struct sock_filter); in __fprog_create() 277 *pfprog = fprog; in __fprog_create() 281 static void __fprog_destroy(struct sock_fprog_kern *fprog) in __fprog_destroy() argument 283 kfree(fprog->filter); in __fprog_destroy() [all …]
|
/Linux-v5.4/kernel/ |
D | seccomp.c | 430 static struct seccomp_filter *seccomp_prepare_filter(struct sock_fprog *fprog) in seccomp_prepare_filter() argument 436 if (fprog->len == 0 || fprog->len > BPF_MAXINSNS) in seccomp_prepare_filter() 439 BUG_ON(INT_MAX / fprog->len < sizeof(struct sock_filter)); in seccomp_prepare_filter() 458 ret = bpf_prog_create_from_user(&sfilter->prog, fprog, in seccomp_prepare_filter() 479 struct sock_fprog fprog; in seccomp_prepare_user_filter() local 487 fprog.len = fprog32.len; in seccomp_prepare_user_filter() 488 fprog.filter = compat_ptr(fprog32.filter); in seccomp_prepare_user_filter() 491 if (copy_from_user(&fprog, user_filter, sizeof(fprog))) in seccomp_prepare_user_filter() 493 filter = seccomp_prepare_filter(&fprog); in seccomp_prepare_user_filter() 1496 struct sock_fprog_kern *fprog; in seccomp_get_filter() local [all …]
|
/Linux-v5.4/net/core/ |
D | sock_diag.c | 73 struct sock_fprog_kern *fprog; in sock_diag_put_filterinfo() local 89 fprog = filter->prog->orig_prog; in sock_diag_put_filterinfo() 90 if (!fprog) in sock_diag_put_filterinfo() 93 flen = bpf_classic_proglen(fprog); in sock_diag_put_filterinfo() 101 memcpy(nla_data(attr), fprog->filter, flen); in sock_diag_put_filterinfo()
|
D | filter.c | 1111 const struct sock_fprog *fprog) in bpf_prog_store_orig_filter() argument 1113 unsigned int fsize = bpf_classic_proglen(fprog); in bpf_prog_store_orig_filter() 1121 fkprog->len = fprog->len; in bpf_prog_store_orig_filter() 1135 struct sock_fprog_kern *fprog = fp->orig_prog; in bpf_release_orig_filter() local 1137 if (fprog) { in bpf_release_orig_filter() 1138 kfree(fprog->filter); in bpf_release_orig_filter() 1139 kfree(fprog); in bpf_release_orig_filter() 1338 int bpf_prog_create(struct bpf_prog **pfp, struct sock_fprog_kern *fprog) in bpf_prog_create() argument 1340 unsigned int fsize = bpf_classic_proglen(fprog); in bpf_prog_create() 1344 if (!bpf_check_basics_ok(fprog->filter, fprog->len)) in bpf_prog_create() [all …]
|
D | sock.c | 995 struct sock_fprog fprog; in sock_setsockopt() local 998 if (copy_from_user(&fprog, optval, sizeof(fprog))) in sock_setsockopt() 1001 ret = sk_attach_filter(&fprog, sk); in sock_setsockopt() 1021 struct sock_fprog fprog; in sock_setsockopt() local 1024 if (copy_from_user(&fprog, optval, sizeof(fprog))) in sock_setsockopt() 1027 ret = sk_reuseport_attach_filter(&fprog, sk); in sock_setsockopt()
|
/Linux-v5.4/include/linux/ |
D | filter.h | 769 #define bpf_classic_proglen(fprog) (fprog->len * sizeof(fprog->filter[0])) argument 825 int bpf_prog_create(struct bpf_prog **pfp, struct sock_fprog_kern *fprog); 826 int bpf_prog_create_from_user(struct bpf_prog **pfp, struct sock_fprog *fprog, 830 int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk); 832 int sk_reuseport_attach_filter(struct sock_fprog *fprog, struct sock *sk);
|
/Linux-v5.4/drivers/net/ppp/ |
D | ppp_generic.c | 762 struct sock_fprog_kern fprog = { in ppp_ioctl() local 768 if (fprog.filter) in ppp_ioctl() 769 err = bpf_prog_create(&pass_filter, &fprog); in ppp_ioctl() 788 struct sock_fprog_kern fprog = { in ppp_ioctl() local 794 if (fprog.filter) in ppp_ioctl() 795 err = bpf_prog_create(&active_filter, &fprog); in ppp_ioctl()
|
/Linux-v5.4/drivers/net/ |
D | tun.c | 225 struct sock_fprog fprog; member 819 err = sk_attach_filter(&tun->fprog, tfile->socket.sk); in tun_attach() 2946 ret = sk_attach_filter(&tun->fprog, tfile->socket.sk); in tun_attach_filter() 3289 if (copy_from_user(&tun->fprog, argp, sizeof(tun->fprog))) in __tun_chr_ioctl() 3309 if (copy_to_user(argp, &tun->fprog, sizeof(tun->fprog))) in __tun_chr_ioctl()
|
/Linux-v5.4/net/packet/ |
D | af_packet.c | 1535 struct sock_fprog fprog; in fanout_set_data_cbpf() local 1540 if (len != sizeof(fprog)) in fanout_set_data_cbpf() 1542 if (copy_from_user(&fprog, data, len)) in fanout_set_data_cbpf() 1545 ret = bpf_prog_create_from_user(&new, &fprog, NULL, false); in fanout_set_data_cbpf()
|
/Linux-v5.4/lib/ |
D | test_bpf.c | 6583 struct sock_fprog_kern fprog; in generate_filter() local 6588 fprog.filter = fptr; in generate_filter() 6589 fprog.len = flen; in generate_filter() 6591 *err = bpf_prog_create(&fp, &fprog); in generate_filter() 6609 *err, fprog.len); in generate_filter()
|