/openbmc/linux/drivers/net/team/ |
H A D | team_mode_loadbalance.c | 257 struct sock_fprog_kern *fprog; in __fprog_create() local 262 fprog = kmalloc(sizeof(*fprog), GFP_KERNEL); in __fprog_create() 263 if (!fprog) in __fprog_create() 265 fprog->filter = kmemdup(filter, data_len, GFP_KERNEL); in __fprog_create() 266 if (!fprog->filter) { in __fprog_create() 267 kfree(fprog); in __fprog_create() 270 fprog->len = data_len / sizeof(struct sock_filter); in __fprog_create() 271 *pfprog = fprog; in __fprog_create() 275 static void __fprog_destroy(struct sock_fprog_kern *fprog) in __fprog_destroy() argument 277 kfree(fprog->filter); in __fprog_destroy() [all …]
|
/openbmc/linux/kernel/ |
H A D | seccomp.c | 648 static struct seccomp_filter *seccomp_prepare_filter(struct sock_fprog *fprog) in seccomp_prepare_filter() argument 659 if (fprog->len == 0 || fprog->len > BPF_MAXINSNS) in seccomp_prepare_filter() 662 BUG_ON(INT_MAX / fprog->len < sizeof(struct sock_filter)); in seccomp_prepare_filter() 680 ret = bpf_prog_create_from_user(&sfilter->prog, fprog, in seccomp_prepare_filter() 703 struct sock_fprog fprog; in seccomp_prepare_user_filter() local 711 fprog.len = fprog32.len; in seccomp_prepare_user_filter() 712 fprog.filter = compat_ptr(fprog32.filter); in seccomp_prepare_user_filter() 715 if (copy_from_user(&fprog, user_filter, sizeof(fprog))) in seccomp_prepare_user_filter() 717 filter = seccomp_prepare_filter(&fprog); in seccomp_prepare_user_filter() 729 static bool seccomp_is_const_allow(struct sock_fprog_kern *fprog, in seccomp_is_const_allow() argument [all …]
|
/openbmc/linux/net/core/ |
H A D | sock_diag.c | 79 struct sock_fprog_kern *fprog; in sock_diag_put_filterinfo() local 95 fprog = filter->prog->orig_prog; in sock_diag_put_filterinfo() 96 if (!fprog) in sock_diag_put_filterinfo() 99 flen = bpf_classic_proglen(fprog); in sock_diag_put_filterinfo() 107 memcpy(nla_data(attr), fprog->filter, flen); in sock_diag_put_filterinfo()
|
H A D | filter.c | 1136 const struct sock_fprog *fprog) in bpf_prog_store_orig_filter() argument 1138 unsigned int fsize = bpf_classic_proglen(fprog); in bpf_prog_store_orig_filter() 1146 fkprog->len = fprog->len; in bpf_prog_store_orig_filter() 1160 struct sock_fprog_kern *fprog = fp->orig_prog; in bpf_release_orig_filter() local 1162 if (fprog) { in bpf_release_orig_filter() 1163 kfree(fprog->filter); in bpf_release_orig_filter() 1164 kfree(fprog); in bpf_release_orig_filter() 1363 int bpf_prog_create(struct bpf_prog **pfp, struct sock_fprog_kern *fprog) in bpf_prog_create() argument 1365 unsigned int fsize = bpf_classic_proglen(fprog); in bpf_prog_create() 1369 if (!bpf_check_basics_ok(fprog->filter, fprog->len)) in bpf_prog_create() [all …]
|
H A D | sock.c | 1312 struct sock_fprog fprog; in sk_setsockopt() local 1314 ret = copy_bpf_fprog_from_user(&fprog, optval, optlen); in sk_setsockopt() 1316 ret = sk_attach_filter(&fprog, sk); in sk_setsockopt() 1333 struct sock_fprog fprog; in sk_setsockopt() local 1335 ret = copy_bpf_fprog_from_user(&fprog, optval, optlen); in sk_setsockopt() 1337 ret = sk_reuseport_attach_filter(&fprog, sk); in sk_setsockopt()
|
/openbmc/linux/include/linux/ |
H A D | filter.h | 843 #define bpf_classic_proglen(fprog) (fprog->len * sizeof(fprog->filter[0])) argument 891 int bpf_prog_create(struct bpf_prog **pfp, struct sock_fprog_kern *fprog); 892 int bpf_prog_create_from_user(struct bpf_prog **pfp, struct sock_fprog *fprog, 896 int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk); 898 int sk_reuseport_attach_filter(struct sock_fprog *fprog, struct sock *sk);
|
/openbmc/linux/drivers/net/ppp/ |
H A D | ppp_generic.c | 579 struct sock_fprog_kern fprog; in get_filter() local 587 fprog.len = uprog->len; in get_filter() 588 fprog.filter = memdup_user(uprog->filter, in get_filter() 590 if (IS_ERR(fprog.filter)) in get_filter() 591 return ERR_CAST(fprog.filter); in get_filter() 593 err = bpf_prog_create(&res, &fprog); in get_filter() 594 kfree(fprog.filter); in get_filter()
|
/openbmc/linux/drivers/net/ |
H A D | tun.c | 194 struct sock_fprog fprog; member 784 err = sk_attach_filter(&tun->fprog, tfile->socket.sk); in tun_attach() 2963 ret = sk_attach_filter(&tun->fprog, tfile->socket.sk); in tun_attach_filter() 3352 if (copy_from_user(&tun->fprog, argp, sizeof(tun->fprog))) in __tun_chr_ioctl() 3372 if (copy_to_user(argp, &tun->fprog, sizeof(tun->fprog))) in __tun_chr_ioctl()
|
/openbmc/qemu/linux-user/ |
H A D | strace.c | 2976 struct target_sock_fprog *fprog; in do_print_sockopt() local 2980 if (lock_user_struct(VERIFY_READ, fprog, optval, 0)) { in do_print_sockopt() 2984 tswapal(fprog->filter), 0)) { in do_print_sockopt() 2986 for (i = 0; i < tswap16(fprog->len) - 1; i++) { in do_print_sockopt() 2997 qemu_log(TARGET_ABI_FMT_lx, tswapal(fprog->filter)); in do_print_sockopt() 2999 qemu_log(",%d},", tswap16(fprog->len)); in do_print_sockopt() 3000 unlock_user(fprog, optval, 0); in do_print_sockopt()
|
H A D | syscall.c | 2357 struct sock_fprog fprog; in do_setsockopt() local 2373 fprog.len = tswap16(tfprog->len); in do_setsockopt() 2374 filter = g_try_new(struct sock_filter, fprog.len); in do_setsockopt() 2380 for (i = 0; i < fprog.len; i++) { in do_setsockopt() 2386 fprog.filter = filter; in do_setsockopt() 2389 SO_ATTACH_FILTER, &fprog, sizeof(fprog))); in do_setsockopt()
|
/openbmc/linux/net/packet/ |
H A D | af_packet.c | 1639 struct sock_fprog fprog; in fanout_set_data_cbpf() local 1645 ret = copy_bpf_fprog_from_user(&fprog, data, len); in fanout_set_data_cbpf() 1649 ret = bpf_prog_create_from_user(&new, &fprog, NULL, false); in fanout_set_data_cbpf()
|
/openbmc/linux/lib/ |
H A D | test_bpf.c | 14438 struct sock_fprog_kern fprog; in generate_filter() local 14443 fprog.filter = fptr; in generate_filter() 14444 fprog.len = flen; in generate_filter() 14446 *err = bpf_prog_create(&fp, &fprog); in generate_filter() 14464 *err, fprog.len); in generate_filter()
|