Lines Matching refs:ondev

82 	struct bpf_offload_netdev *ondev;  in __bpf_offload_dev_netdev_register()  local
85 ondev = kzalloc(sizeof(*ondev), GFP_KERNEL); in __bpf_offload_dev_netdev_register()
86 if (!ondev) in __bpf_offload_dev_netdev_register()
89 ondev->netdev = netdev; in __bpf_offload_dev_netdev_register()
90 ondev->offdev = offdev; in __bpf_offload_dev_netdev_register()
91 INIT_LIST_HEAD(&ondev->progs); in __bpf_offload_dev_netdev_register()
92 INIT_LIST_HEAD(&ondev->maps); in __bpf_offload_dev_netdev_register()
94 err = rhashtable_insert_fast(&offdevs, &ondev->l, offdevs_params); in __bpf_offload_dev_netdev_register()
101 list_add(&ondev->offdev_netdevs, &offdev->netdevs); in __bpf_offload_dev_netdev_register()
105 kfree(ondev); in __bpf_offload_dev_netdev_register()
149 struct bpf_offload_netdev *ondev, *altdev = NULL; in __bpf_offload_dev_netdev_unregister() local
155 ondev = rhashtable_lookup_fast(&offdevs, &netdev, offdevs_params); in __bpf_offload_dev_netdev_unregister()
156 if (WARN_ON(!ondev)) in __bpf_offload_dev_netdev_unregister()
159 WARN_ON(rhashtable_remove_fast(&offdevs, &ondev->l, offdevs_params)); in __bpf_offload_dev_netdev_unregister()
163 list_del(&ondev->offdev_netdevs); in __bpf_offload_dev_netdev_unregister()
170 list_for_each_entry(offload, &ondev->progs, offloads) in __bpf_offload_dev_netdev_unregister()
172 list_splice_init(&ondev->progs, &altdev->progs); in __bpf_offload_dev_netdev_unregister()
174 list_for_each_entry(offmap, &ondev->maps, offloads) in __bpf_offload_dev_netdev_unregister()
176 list_splice_init(&ondev->maps, &altdev->maps); in __bpf_offload_dev_netdev_unregister()
178 list_for_each_entry_safe(offload, ptmp, &ondev->progs, offloads) in __bpf_offload_dev_netdev_unregister()
180 list_for_each_entry_safe(offmap, mtmp, &ondev->maps, offloads) in __bpf_offload_dev_netdev_unregister()
184 WARN_ON(!list_empty(&ondev->progs)); in __bpf_offload_dev_netdev_unregister()
185 WARN_ON(!list_empty(&ondev->maps)); in __bpf_offload_dev_netdev_unregister()
186 kfree(ondev); in __bpf_offload_dev_netdev_unregister()
191 struct bpf_offload_netdev *ondev; in __bpf_prog_dev_bound_init() local
202 ondev = bpf_offload_find_netdev(offload->netdev); in __bpf_prog_dev_bound_init()
206 if (bpf_prog_is_offloaded(prog->aux) && (!ondev || !ondev->offdev)) { in __bpf_prog_dev_bound_init()
210 if (!ondev) { in __bpf_prog_dev_bound_init()
217 ondev = bpf_offload_find_netdev(offload->netdev); in __bpf_prog_dev_bound_init()
219 offload->offdev = ondev->offdev; in __bpf_prog_dev_bound_init()
221 list_add_tail(&offload->offloads, &ondev->progs); in __bpf_prog_dev_bound_init()
384 struct bpf_offload_netdev *ondev; in bpf_prog_dev_bound_destroy() local
395 ondev = bpf_offload_find_netdev(netdev); in bpf_prog_dev_bound_destroy()
396 if (!ondev->offdev && list_empty(&ondev->progs)) in bpf_prog_dev_bound_destroy()
517 struct bpf_offload_netdev *ondev; in bpf_map_offload_map_alloc() local
541 ondev = bpf_offload_find_netdev(offmap->netdev); in bpf_map_offload_map_alloc()
542 if (!ondev) { in bpf_map_offload_map_alloc()
551 list_add_tail(&offmap->offloads, &ondev->maps); in bpf_map_offload_map_alloc()
817 struct bpf_offload_netdev *ondev; in bpf_dev_bound_netdev_unregister() local
822 ondev = bpf_offload_find_netdev(dev); in bpf_dev_bound_netdev_unregister()
823 if (ondev && !ondev->offdev) in bpf_dev_bound_netdev_unregister()
824 __bpf_offload_dev_netdev_unregister(NULL, ondev->netdev); in bpf_dev_bound_netdev_unregister()