Lines Matching refs:prog

112 		    struct bpf_prog *prog)  in nfp_map_ptrs_record()  argument
116 mutex_lock(&prog->aux->used_maps_mutex); in nfp_map_ptrs_record()
120 for (i = 0; i < prog->aux->used_map_cnt; i++) in nfp_map_ptrs_record()
121 if (bpf_map_offload_neutral(prog->aux->used_maps[i])) in nfp_map_ptrs_record()
134 for (i = 0; i < prog->aux->used_map_cnt; i++) in nfp_map_ptrs_record()
135 if (bpf_map_offload_neutral(prog->aux->used_maps[i])) { in nfp_map_ptrs_record()
137 prog->aux->used_maps[i]); in nfp_map_ptrs_record()
146 mutex_unlock(&prog->aux->used_maps_mutex); in nfp_map_ptrs_record()
151 nfp_prog_prepare(struct nfp_prog *nfp_prog, const struct bpf_insn *prog, in nfp_prog_prepare() argument
162 meta->insn = prog[i]; in nfp_prog_prepare()
191 static int nfp_bpf_verifier_prep(struct bpf_prog *prog) in nfp_bpf_verifier_prep() argument
199 prog->aux->offload->dev_priv = nfp_prog; in nfp_bpf_verifier_prep()
202 nfp_prog->type = prog->type; in nfp_bpf_verifier_prep()
203 nfp_prog->bpf = bpf_offload_dev_priv(prog->aux->offload->offdev); in nfp_bpf_verifier_prep()
205 ret = nfp_prog_prepare(nfp_prog, prog->insnsi, prog->len); in nfp_bpf_verifier_prep()
219 static int nfp_bpf_translate(struct bpf_prog *prog) in nfp_bpf_translate() argument
221 struct nfp_net *nn = netdev_priv(prog->aux->offload->netdev); in nfp_bpf_translate()
222 struct nfp_prog *nfp_prog = prog->aux->offload->dev_priv; in nfp_bpf_translate()
227 if (prog->aux->offload->opt_failed) in nfp_bpf_translate()
233 nfp_prog->prog = kvmalloc(nfp_prog->__prog_alloc_len, GFP_KERNEL); in nfp_bpf_translate()
234 if (!nfp_prog->prog) in nfp_bpf_translate()
241 prog->aux->offload->jited_len = nfp_prog->prog_len * sizeof(u64); in nfp_bpf_translate()
242 prog->aux->offload->jited_image = nfp_prog->prog; in nfp_bpf_translate()
244 return nfp_map_ptrs_record(nfp_prog->bpf, nfp_prog, prog); in nfp_bpf_translate()
247 static void nfp_bpf_destroy(struct bpf_prog *prog) in nfp_bpf_destroy() argument
249 struct nfp_prog *nfp_prog = prog->aux->offload->dev_priv; in nfp_bpf_destroy()
251 kvfree(nfp_prog->prog); in nfp_bpf_destroy()
484 bool nfp_bpf_offload_check_mtu(struct nfp_net *nn, struct bpf_prog *prog, in nfp_bpf_offload_check_mtu() argument
490 pkt_off = min(prog->aux->max_pkt_offset, mtu); in nfp_bpf_offload_check_mtu()
496 nfp_net_bpf_load(struct nfp_net *nn, struct bpf_prog *prog, in nfp_net_bpf_load() argument
499 struct nfp_prog *nfp_prog = prog->aux->offload->dev_priv; in nfp_net_bpf_load()
505 if (nfp_bpf_offload_check_mtu(nn, prog, nn->dp.netdev->mtu)) { in nfp_net_bpf_load()
575 int nfp_net_bpf_offload(struct nfp_net *nn, struct bpf_prog *prog, in nfp_net_bpf_offload() argument
580 if (prog && !bpf_offload_dev_match(prog, nn->dp.netdev)) in nfp_net_bpf_offload()
583 if (prog && old_prog) { in nfp_net_bpf_offload()
598 if (old_prog && !prog) in nfp_net_bpf_offload()
601 err = nfp_net_bpf_load(nn, prog, extack); in nfp_net_bpf_offload()