Lines Matching refs:prog
351 static int find_prog_type(enum bpf_prog_type type, struct bpf_prog *prog) in find_prog_type() argument
357 prog->aux->ops = tl->ops; in find_prog_type()
358 prog->type = type; in find_prog_type()
380 static void fixup_bpf_calls(struct bpf_prog *prog) in fixup_bpf_calls() argument
385 for (i = 0; i < prog->len; i++) { in fixup_bpf_calls()
386 struct bpf_insn *insn = &prog->insnsi[i]; in fixup_bpf_calls()
393 BUG_ON(!prog->aux->ops->get_func_proto); in fixup_bpf_calls()
395 fn = prog->aux->ops->get_func_proto(insn->imm); in fixup_bpf_calls()
416 void bpf_prog_put(struct bpf_prog *prog) in bpf_prog_put() argument
418 if (atomic_dec_and_test(&prog->aux->refcnt)) { in bpf_prog_put()
419 free_used_maps(prog->aux); in bpf_prog_put()
420 bpf_prog_free(prog); in bpf_prog_put()
427 struct bpf_prog *prog = filp->private_data; in bpf_prog_release() local
429 bpf_prog_put(prog); in bpf_prog_release()
439 struct bpf_prog *prog; in get_prog() local
449 prog = f.file->private_data; in get_prog()
451 return prog; in get_prog()
460 struct bpf_prog *prog; in bpf_prog_get() local
462 prog = get_prog(f); in bpf_prog_get()
464 if (IS_ERR(prog)) in bpf_prog_get()
465 return prog; in bpf_prog_get()
467 atomic_inc(&prog->aux->refcnt); in bpf_prog_get()
469 return prog; in bpf_prog_get()
479 struct bpf_prog *prog; in bpf_prog_load() local
504 prog = bpf_prog_alloc(bpf_prog_size(attr->insn_cnt), GFP_USER); in bpf_prog_load()
505 if (!prog) in bpf_prog_load()
508 prog->len = attr->insn_cnt; in bpf_prog_load()
511 if (copy_from_user(prog->insns, u64_to_ptr(attr->insns), in bpf_prog_load()
512 prog->len * sizeof(struct bpf_insn)) != 0) in bpf_prog_load()
515 prog->orig_prog = NULL; in bpf_prog_load()
516 prog->jited = false; in bpf_prog_load()
518 atomic_set(&prog->aux->refcnt, 1); in bpf_prog_load()
519 prog->gpl_compatible = is_gpl; in bpf_prog_load()
522 err = find_prog_type(type, prog); in bpf_prog_load()
527 err = bpf_check(&prog, attr); in bpf_prog_load()
532 fixup_bpf_calls(prog); in bpf_prog_load()
535 bpf_prog_select_runtime(prog); in bpf_prog_load()
537 err = anon_inode_getfd("bpf-prog", &bpf_prog_fops, prog, O_RDWR | O_CLOEXEC); in bpf_prog_load()
545 free_used_maps(prog->aux); in bpf_prog_load()
547 bpf_prog_free(prog); in bpf_prog_load()