Lines Matching refs:new_prog
9967 struct bpf_xdp_link *link, struct bpf_prog *new_prog, in dev_xdp_attach() argument
9981 if (link && (new_prog || old_prog)) in dev_xdp_attach()
10033 new_prog = link->link.prog; in dev_xdp_attach()
10035 if (new_prog) { in dev_xdp_attach()
10048 if (!offload && bpf_prog_is_offloaded(new_prog->aux)) { in dev_xdp_attach()
10052 if (bpf_prog_is_dev_bound(new_prog->aux) && !bpf_offload_dev_match(new_prog, dev)) { in dev_xdp_attach()
10056 if (bpf_prog_is_dev_bound(new_prog->aux) && mode == XDP_MODE_SKB) { in dev_xdp_attach()
10060 if (new_prog->expected_attach_type == BPF_XDP_DEVMAP) { in dev_xdp_attach()
10064 if (new_prog->expected_attach_type == BPF_XDP_CPUMAP) { in dev_xdp_attach()
10071 if (new_prog != cur_prog) { in dev_xdp_attach()
10078 err = dev_xdp_install(dev, mode, bpf_op, extack, flags, new_prog); in dev_xdp_attach()
10086 dev_xdp_set_prog(dev, mode, new_prog); in dev_xdp_attach()
10180 static int bpf_xdp_link_update(struct bpf_link *link, struct bpf_prog *new_prog, in bpf_xdp_link_update() argument
10201 if (old_prog->type != new_prog->type || in bpf_xdp_link_update()
10202 old_prog->expected_attach_type != new_prog->expected_attach_type) { in bpf_xdp_link_update()
10207 if (old_prog == new_prog) { in bpf_xdp_link_update()
10209 bpf_prog_put(new_prog); in bpf_xdp_link_update()
10217 xdp_link->flags, new_prog); in bpf_xdp_link_update()
10222 old_prog = xchg(&link->prog, new_prog); in bpf_xdp_link_update()
10310 struct bpf_prog *new_prog = NULL, *old_prog = NULL; in dev_change_xdp_fd() local
10316 new_prog = bpf_prog_get_type_dev(fd, BPF_PROG_TYPE_XDP, in dev_change_xdp_fd()
10318 if (IS_ERR(new_prog)) in dev_change_xdp_fd()
10319 return PTR_ERR(new_prog); in dev_change_xdp_fd()
10332 err = dev_xdp_attach(dev, extack, NULL, new_prog, old_prog, flags); in dev_change_xdp_fd()
10335 if (err && new_prog) in dev_change_xdp_fd()
10336 bpf_prog_put(new_prog); in dev_change_xdp_fd()