/linux-4.1.27/drivers/net/team/ |
D | team_mode_loadbalance.c | 247 struct sock_fprog_kern *fprog; in __fprog_create() local 252 fprog = kmalloc(sizeof(*fprog), GFP_KERNEL); in __fprog_create() 253 if (!fprog) in __fprog_create() 255 fprog->filter = kmemdup(filter, data_len, GFP_KERNEL); in __fprog_create() 256 if (!fprog->filter) { in __fprog_create() 257 kfree(fprog); in __fprog_create() 260 fprog->len = data_len / sizeof(struct sock_filter); in __fprog_create() 261 *pfprog = fprog; in __fprog_create() 265 static void __fprog_destroy(struct sock_fprog_kern *fprog) in __fprog_destroy() argument 267 kfree(fprog->filter); in __fprog_destroy() [all …]
|
/linux-4.1.27/kernel/ |
D | seccomp.c | 347 static struct seccomp_filter *seccomp_prepare_filter(struct sock_fprog *fprog) in seccomp_prepare_filter() argument 355 if (fprog->len == 0 || fprog->len > BPF_MAXINSNS) in seccomp_prepare_filter() 357 BUG_ON(INT_MAX / fprog->len < sizeof(struct sock_filter)); in seccomp_prepare_filter() 358 fp_size = fprog->len * sizeof(struct sock_filter); in seccomp_prepare_filter() 377 if (copy_from_user(fp, fprog->filter, fp_size)) in seccomp_prepare_filter() 381 ret = bpf_check_classic(fp, fprog->len); in seccomp_prepare_filter() 386 ret = seccomp_check_filter(fp, fprog->len); in seccomp_prepare_filter() 391 ret = bpf_convert_filter(fp, fprog->len, NULL, &new_len); in seccomp_prepare_filter() 406 ret = bpf_convert_filter(fp, fprog->len, filter->prog->insnsi, &new_len); in seccomp_prepare_filter() 436 struct sock_fprog fprog; in seccomp_prepare_user_filter() local [all …]
|
/linux-4.1.27/net/core/ |
D | filter.c | 836 const struct sock_fprog *fprog) in bpf_prog_store_orig_filter() argument 838 unsigned int fsize = bpf_classic_proglen(fprog); in bpf_prog_store_orig_filter() 846 fkprog->len = fprog->len; in bpf_prog_store_orig_filter() 858 struct sock_fprog_kern *fprog = fp->orig_prog; in bpf_release_orig_filter() local 860 if (fprog) { in bpf_release_orig_filter() 861 kfree(fprog->filter); in bpf_release_orig_filter() 862 kfree(fprog); in bpf_release_orig_filter() 1033 int bpf_prog_create(struct bpf_prog **pfp, struct sock_fprog_kern *fprog) in bpf_prog_create() argument 1035 unsigned int fsize = bpf_classic_proglen(fprog); in bpf_prog_create() 1039 if (fprog->filter == NULL) in bpf_prog_create() [all …]
|
D | sock_diag.c | 72 struct sock_fprog_kern *fprog; in sock_diag_put_filterinfo() local 88 fprog = filter->prog->orig_prog; in sock_diag_put_filterinfo() 89 if (!fprog) in sock_diag_put_filterinfo() 92 flen = bpf_classic_proglen(fprog); in sock_diag_put_filterinfo() 100 memcpy(nla_data(attr), fprog->filter, flen); in sock_diag_put_filterinfo()
|
D | sock.c | 899 struct sock_fprog fprog; in sock_setsockopt() local 902 if (copy_from_user(&fprog, optval, sizeof(fprog))) in sock_setsockopt() 905 ret = sk_attach_filter(&fprog, sk); in sock_setsockopt()
|
/linux-4.1.27/include/linux/ |
D | filter.h | 339 #define bpf_classic_proglen(fprog) (fprog->len * sizeof(fprog->filter[0])) argument 380 int bpf_prog_create(struct bpf_prog **pfp, struct sock_fprog_kern *fprog); 383 int sk_attach_filter(struct sock_fprog *fprog, struct sock *sk);
|
/linux-4.1.27/drivers/isdn/i4l/ |
D | isdn_ppp.c | 635 struct sock_fprog_kern fprog; in isdn_ppp_ioctl() local 642 fprog.len = len; in isdn_ppp_ioctl() 643 fprog.filter = code; in isdn_ppp_ioctl() 649 if (fprog.filter != NULL) in isdn_ppp_ioctl() 650 err = bpf_prog_create(&is->pass_filter, &fprog); in isdn_ppp_ioctl() 659 struct sock_fprog_kern fprog; in isdn_ppp_ioctl() local 666 fprog.len = len; in isdn_ppp_ioctl() 667 fprog.filter = code; in isdn_ppp_ioctl() 673 if (fprog.filter != NULL) in isdn_ppp_ioctl() 674 err = bpf_prog_create(&is->active_filter, &fprog); in isdn_ppp_ioctl()
|
/linux-4.1.27/drivers/net/ |
D | tun.c | 193 struct sock_fprog fprog; member 573 err = sk_attach_filter(&tun->fprog, tfile->socket.sk); in tun_attach() 1776 ret = sk_attach_filter(&tun->fprog, tfile->socket.sk); in tun_attach_filter() 2065 if (copy_from_user(&tun->fprog, argp, sizeof(tun->fprog))) in __tun_chr_ioctl() 2085 if (copy_to_user(argp, &tun->fprog, sizeof(tun->fprog))) in __tun_chr_ioctl()
|
/linux-4.1.27/drivers/net/ppp/ |
D | ppp_generic.c | 759 struct sock_fprog_kern fprog = { in ppp_ioctl() local 765 if (fprog.filter) in ppp_ioctl() 766 err = bpf_prog_create(&pass_filter, &fprog); in ppp_ioctl() 785 struct sock_fprog_kern fprog = { in ppp_ioctl() local 791 if (fprog.filter) in ppp_ioctl() 792 err = bpf_prog_create(&active_filter, &fprog); in ppp_ioctl()
|
/linux-4.1.27/lib/ |
D | test_bpf.c | 1875 struct sock_fprog_kern fprog; in generate_filter() local 1881 fprog.filter = tests[which].u.insns; in generate_filter() 1882 fprog.len = flen; in generate_filter() 1884 *err = bpf_prog_create(&fp, &fprog); in generate_filter() 1903 *err, fprog.len); in generate_filter()
|