| /Linux-v5.4/drivers/net/team/ | 
| D | team_mode_loadbalance.c | 263 	struct sock_fprog_kern *fprog;  in __fprog_create()  local268 	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()  argument436 	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()  local89 	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()  argument1113 	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()  local998 			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]))  argument825 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()  local768 			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;  member819 		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()  local1540 	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()  local6588 		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()
 
 |