fprog 762 drivers/net/ppp/ppp_generic.c struct sock_fprog_kern fprog = { fprog 768 drivers/net/ppp/ppp_generic.c if (fprog.filter) fprog 769 drivers/net/ppp/ppp_generic.c err = bpf_prog_create(&pass_filter, &fprog); fprog 788 drivers/net/ppp/ppp_generic.c struct sock_fprog_kern fprog = { fprog 794 drivers/net/ppp/ppp_generic.c if (fprog.filter) fprog 795 drivers/net/ppp/ppp_generic.c err = bpf_prog_create(&active_filter, &fprog); fprog 263 drivers/net/team/team_mode_loadbalance.c struct sock_fprog_kern *fprog; fprog 268 drivers/net/team/team_mode_loadbalance.c fprog = kmalloc(sizeof(*fprog), GFP_KERNEL); fprog 269 drivers/net/team/team_mode_loadbalance.c if (!fprog) fprog 271 drivers/net/team/team_mode_loadbalance.c fprog->filter = kmemdup(filter, data_len, GFP_KERNEL); fprog 272 drivers/net/team/team_mode_loadbalance.c if (!fprog->filter) { fprog 273 drivers/net/team/team_mode_loadbalance.c kfree(fprog); fprog 276 drivers/net/team/team_mode_loadbalance.c fprog->len = data_len / sizeof(struct sock_filter); fprog 277 drivers/net/team/team_mode_loadbalance.c *pfprog = fprog; fprog 281 drivers/net/team/team_mode_loadbalance.c static void __fprog_destroy(struct sock_fprog_kern *fprog) fprog 283 drivers/net/team/team_mode_loadbalance.c kfree(fprog->filter); fprog 284 drivers/net/team/team_mode_loadbalance.c kfree(fprog); fprog 292 drivers/net/team/team_mode_loadbalance.c struct sock_fprog_kern *fprog = NULL; fprog 296 drivers/net/team/team_mode_loadbalance.c err = __fprog_create(&fprog, ctx->data.bin_val.len, fprog 300 drivers/net/team/team_mode_loadbalance.c err = bpf_prog_create(&fp, fprog); fprog 302 drivers/net/team/team_mode_loadbalance.c __fprog_destroy(fprog); fprog 315 drivers/net/team/team_mode_loadbalance.c lb_priv->ex->orig_fprog = fprog; fprog 225 drivers/net/tun.c struct sock_fprog fprog; fprog 819 drivers/net/tun.c err = sk_attach_filter(&tun->fprog, tfile->socket.sk); fprog 2959 drivers/net/tun.c ret = sk_attach_filter(&tun->fprog, tfile->socket.sk); fprog 3302 drivers/net/tun.c if (copy_from_user(&tun->fprog, argp, sizeof(tun->fprog))) fprog 3322 drivers/net/tun.c if (copy_to_user(argp, &tun->fprog, sizeof(tun->fprog))) fprog 769 include/linux/filter.h #define bpf_classic_proglen(fprog) (fprog->len * sizeof(fprog->filter[0])) fprog 829 include/linux/filter.h int bpf_prog_create(struct bpf_prog **pfp, struct sock_fprog_kern *fprog); fprog 830 include/linux/filter.h int bpf_prog_create_from_user(struct bpf_prog **pfp, struct sock_fprog *fprog, fprog 834 include/linux/filter.h int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk); fprog 836 include/linux/filter.h int sk_reuseport_attach_filter(struct sock_fprog *fprog, struct sock *sk); fprog 430 kernel/seccomp.c static struct seccomp_filter *seccomp_prepare_filter(struct sock_fprog *fprog) fprog 436 kernel/seccomp.c if (fprog->len == 0 || fprog->len > BPF_MAXINSNS) fprog 439 kernel/seccomp.c BUG_ON(INT_MAX / fprog->len < sizeof(struct sock_filter)); fprog 458 kernel/seccomp.c ret = bpf_prog_create_from_user(&sfilter->prog, fprog, fprog 479 kernel/seccomp.c struct sock_fprog fprog; fprog 487 kernel/seccomp.c fprog.len = fprog32.len; fprog 488 kernel/seccomp.c fprog.filter = compat_ptr(fprog32.filter); fprog 491 kernel/seccomp.c if (copy_from_user(&fprog, user_filter, sizeof(fprog))) fprog 493 kernel/seccomp.c filter = seccomp_prepare_filter(&fprog); fprog 1504 kernel/seccomp.c struct sock_fprog_kern *fprog; fprog 1516 kernel/seccomp.c fprog = filter->prog->orig_prog; fprog 1517 kernel/seccomp.c if (!fprog) { fprog 1526 kernel/seccomp.c ret = fprog->len; fprog 1530 kernel/seccomp.c if (copy_to_user(data, fprog->filter, bpf_classic_proglen(fprog))) fprog 6583 lib/test_bpf.c struct sock_fprog_kern fprog; fprog 6588 lib/test_bpf.c fprog.filter = fptr; fprog 6589 lib/test_bpf.c fprog.len = flen; fprog 6591 lib/test_bpf.c *err = bpf_prog_create(&fp, &fprog); fprog 6609 lib/test_bpf.c *err, fprog.len); fprog 1111 net/core/filter.c const struct sock_fprog *fprog) fprog 1113 net/core/filter.c unsigned int fsize = bpf_classic_proglen(fprog); fprog 1121 net/core/filter.c fkprog->len = fprog->len; fprog 1135 net/core/filter.c struct sock_fprog_kern *fprog = fp->orig_prog; fprog 1137 net/core/filter.c if (fprog) { fprog 1138 net/core/filter.c kfree(fprog->filter); fprog 1139 net/core/filter.c kfree(fprog); fprog 1338 net/core/filter.c int bpf_prog_create(struct bpf_prog **pfp, struct sock_fprog_kern *fprog) fprog 1340 net/core/filter.c unsigned int fsize = bpf_classic_proglen(fprog); fprog 1344 net/core/filter.c if (!bpf_check_basics_ok(fprog->filter, fprog->len)) fprog 1347 net/core/filter.c fp = bpf_prog_alloc(bpf_prog_size(fprog->len), 0); fprog 1351 net/core/filter.c memcpy(fp->insns, fprog->filter, fsize); fprog 1353 net/core/filter.c fp->len = fprog->len; fprog 1383 net/core/filter.c int bpf_prog_create_from_user(struct bpf_prog **pfp, struct sock_fprog *fprog, fprog 1386 net/core/filter.c unsigned int fsize = bpf_classic_proglen(fprog); fprog 1391 net/core/filter.c if (!bpf_check_basics_ok(fprog->filter, fprog->len)) fprog 1394 net/core/filter.c fp = bpf_prog_alloc(bpf_prog_size(fprog->len), 0); fprog 1398 net/core/filter.c if (copy_from_user(fp->insns, fprog->filter, fsize)) { fprog 1403 net/core/filter.c fp->len = fprog->len; fprog 1407 net/core/filter.c err = bpf_prog_store_orig_filter(fp, fprog); fprog 1459 net/core/filter.c struct bpf_prog *__get_filter(struct sock_fprog *fprog, struct sock *sk) fprog 1461 net/core/filter.c unsigned int fsize = bpf_classic_proglen(fprog); fprog 1469 net/core/filter.c if (!bpf_check_basics_ok(fprog->filter, fprog->len)) fprog 1472 net/core/filter.c prog = bpf_prog_alloc(bpf_prog_size(fprog->len), 0); fprog 1476 net/core/filter.c if (copy_from_user(prog->insns, fprog->filter, fsize)) { fprog 1481 net/core/filter.c prog->len = fprog->len; fprog 1483 net/core/filter.c err = bpf_prog_store_orig_filter(prog, fprog); fprog 1505 net/core/filter.c int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk) fprog 1507 net/core/filter.c struct bpf_prog *prog = __get_filter(fprog, sk); fprog 1523 net/core/filter.c int sk_reuseport_attach_filter(struct sock_fprog *fprog, struct sock *sk) fprog 1525 net/core/filter.c struct bpf_prog *prog = __get_filter(fprog, sk); fprog 8633 net/core/filter.c struct sock_fprog_kern *fprog; fprog 8648 net/core/filter.c fprog = filter->prog->orig_prog; fprog 8649 net/core/filter.c if (!fprog) fprog 8652 net/core/filter.c ret = fprog->len; fprog 8658 net/core/filter.c if (len < fprog->len) fprog 8662 net/core/filter.c if (copy_to_user(ubuf, fprog->filter, bpf_classic_proglen(fprog))) fprog 8668 net/core/filter.c ret = fprog->len; fprog 995 net/core/sock.c struct sock_fprog fprog; fprog 998 net/core/sock.c if (copy_from_user(&fprog, optval, sizeof(fprog))) fprog 1001 net/core/sock.c ret = sk_attach_filter(&fprog, sk); fprog 1021 net/core/sock.c struct sock_fprog fprog; fprog 1024 net/core/sock.c if (copy_from_user(&fprog, optval, sizeof(fprog))) fprog 1027 net/core/sock.c ret = sk_reuseport_attach_filter(&fprog, sk); fprog 73 net/core/sock_diag.c struct sock_fprog_kern *fprog; fprog 89 net/core/sock_diag.c fprog = filter->prog->orig_prog; fprog 90 net/core/sock_diag.c if (!fprog) fprog 93 net/core/sock_diag.c flen = bpf_classic_proglen(fprog); fprog 101 net/core/sock_diag.c memcpy(nla_data(attr), fprog->filter, flen); fprog 1542 net/packet/af_packet.c struct sock_fprog fprog; fprog 1547 net/packet/af_packet.c if (len != sizeof(fprog)) fprog 1549 net/packet/af_packet.c if (copy_from_user(&fprog, data, len)) fprog 1552 net/packet/af_packet.c ret = bpf_prog_create_from_user(&new, &fprog, NULL, false);