Lines Matching refs:ondev

81 	struct bpf_offload_netdev *ondev;  in __bpf_offload_dev_netdev_register()  local
84 ondev = kzalloc(sizeof(*ondev), GFP_KERNEL); in __bpf_offload_dev_netdev_register()
85 if (!ondev) in __bpf_offload_dev_netdev_register()
88 ondev->netdev = netdev; in __bpf_offload_dev_netdev_register()
89 ondev->offdev = offdev; in __bpf_offload_dev_netdev_register()
90 INIT_LIST_HEAD(&ondev->progs); in __bpf_offload_dev_netdev_register()
91 INIT_LIST_HEAD(&ondev->maps); in __bpf_offload_dev_netdev_register()
93 err = rhashtable_insert_fast(&offdevs, &ondev->l, offdevs_params); in __bpf_offload_dev_netdev_register()
100 list_add(&ondev->offdev_netdevs, &offdev->netdevs); in __bpf_offload_dev_netdev_register()
104 kfree(ondev); in __bpf_offload_dev_netdev_register()
148 struct bpf_offload_netdev *ondev, *altdev = NULL; in __bpf_offload_dev_netdev_unregister() local
154 ondev = rhashtable_lookup_fast(&offdevs, &netdev, offdevs_params); in __bpf_offload_dev_netdev_unregister()
155 if (WARN_ON(!ondev)) in __bpf_offload_dev_netdev_unregister()
158 WARN_ON(rhashtable_remove_fast(&offdevs, &ondev->l, offdevs_params)); in __bpf_offload_dev_netdev_unregister()
162 list_del(&ondev->offdev_netdevs); in __bpf_offload_dev_netdev_unregister()
169 list_for_each_entry(offload, &ondev->progs, offloads) in __bpf_offload_dev_netdev_unregister()
171 list_splice_init(&ondev->progs, &altdev->progs); in __bpf_offload_dev_netdev_unregister()
173 list_for_each_entry(offmap, &ondev->maps, offloads) in __bpf_offload_dev_netdev_unregister()
175 list_splice_init(&ondev->maps, &altdev->maps); in __bpf_offload_dev_netdev_unregister()
177 list_for_each_entry_safe(offload, ptmp, &ondev->progs, offloads) in __bpf_offload_dev_netdev_unregister()
179 list_for_each_entry_safe(offmap, mtmp, &ondev->maps, offloads) in __bpf_offload_dev_netdev_unregister()
183 WARN_ON(!list_empty(&ondev->progs)); in __bpf_offload_dev_netdev_unregister()
184 WARN_ON(!list_empty(&ondev->maps)); in __bpf_offload_dev_netdev_unregister()
185 kfree(ondev); in __bpf_offload_dev_netdev_unregister()
190 struct bpf_offload_netdev *ondev; in __bpf_prog_dev_bound_init() local
201 ondev = bpf_offload_find_netdev(offload->netdev); in __bpf_prog_dev_bound_init()
205 if (bpf_prog_is_offloaded(prog->aux) && (!ondev || !ondev->offdev)) { in __bpf_prog_dev_bound_init()
209 if (!ondev) { in __bpf_prog_dev_bound_init()
216 ondev = bpf_offload_find_netdev(offload->netdev); in __bpf_prog_dev_bound_init()
218 offload->offdev = ondev->offdev; in __bpf_prog_dev_bound_init()
220 list_add_tail(&offload->offloads, &ondev->progs); in __bpf_prog_dev_bound_init()
376 struct bpf_offload_netdev *ondev; in bpf_prog_dev_bound_destroy() local
387 ondev = bpf_offload_find_netdev(netdev); in bpf_prog_dev_bound_destroy()
388 if (!ondev->offdev && list_empty(&ondev->progs)) in bpf_prog_dev_bound_destroy()
509 struct bpf_offload_netdev *ondev; in bpf_map_offload_map_alloc() local
532 ondev = bpf_offload_find_netdev(offmap->netdev); in bpf_map_offload_map_alloc()
533 if (!ondev) { in bpf_map_offload_map_alloc()
542 list_add_tail(&offmap->offloads, &ondev->maps); in bpf_map_offload_map_alloc()
805 struct bpf_offload_netdev *ondev; in bpf_dev_bound_netdev_unregister() local
810 ondev = bpf_offload_find_netdev(dev); in bpf_dev_bound_netdev_unregister()
811 if (ondev && !ondev->offdev) in bpf_dev_bound_netdev_unregister()
812 __bpf_offload_dev_netdev_unregister(NULL, ondev->netdev); in bpf_dev_bound_netdev_unregister()