Lines Matching refs:ondev
80 struct bpf_offload_netdev *ondev; in __bpf_offload_dev_netdev_register() local
83 ondev = kzalloc(sizeof(*ondev), GFP_KERNEL); in __bpf_offload_dev_netdev_register()
84 if (!ondev) in __bpf_offload_dev_netdev_register()
87 ondev->netdev = netdev; in __bpf_offload_dev_netdev_register()
88 ondev->offdev = offdev; in __bpf_offload_dev_netdev_register()
89 INIT_LIST_HEAD(&ondev->progs); in __bpf_offload_dev_netdev_register()
90 INIT_LIST_HEAD(&ondev->maps); in __bpf_offload_dev_netdev_register()
92 err = rhashtable_insert_fast(&offdevs, &ondev->l, offdevs_params); in __bpf_offload_dev_netdev_register()
99 list_add(&ondev->offdev_netdevs, &offdev->netdevs); in __bpf_offload_dev_netdev_register()
103 kfree(ondev); in __bpf_offload_dev_netdev_register()
147 struct bpf_offload_netdev *ondev, *altdev = NULL; in __bpf_offload_dev_netdev_unregister() local
153 ondev = rhashtable_lookup_fast(&offdevs, &netdev, offdevs_params); in __bpf_offload_dev_netdev_unregister()
154 if (WARN_ON(!ondev)) in __bpf_offload_dev_netdev_unregister()
157 WARN_ON(rhashtable_remove_fast(&offdevs, &ondev->l, offdevs_params)); in __bpf_offload_dev_netdev_unregister()
161 list_del(&ondev->offdev_netdevs); in __bpf_offload_dev_netdev_unregister()
168 list_for_each_entry(offload, &ondev->progs, offloads) in __bpf_offload_dev_netdev_unregister()
170 list_splice_init(&ondev->progs, &altdev->progs); in __bpf_offload_dev_netdev_unregister()
172 list_for_each_entry(offmap, &ondev->maps, offloads) in __bpf_offload_dev_netdev_unregister()
174 list_splice_init(&ondev->maps, &altdev->maps); in __bpf_offload_dev_netdev_unregister()
176 list_for_each_entry_safe(offload, ptmp, &ondev->progs, offloads) in __bpf_offload_dev_netdev_unregister()
178 list_for_each_entry_safe(offmap, mtmp, &ondev->maps, offloads) in __bpf_offload_dev_netdev_unregister()
182 WARN_ON(!list_empty(&ondev->progs)); in __bpf_offload_dev_netdev_unregister()
183 WARN_ON(!list_empty(&ondev->maps)); in __bpf_offload_dev_netdev_unregister()
184 kfree(ondev); in __bpf_offload_dev_netdev_unregister()
189 struct bpf_offload_netdev *ondev; in __bpf_prog_dev_bound_init() local
200 ondev = bpf_offload_find_netdev(offload->netdev); in __bpf_prog_dev_bound_init()
201 if (!ondev) { in __bpf_prog_dev_bound_init()
213 ondev = bpf_offload_find_netdev(offload->netdev); in __bpf_prog_dev_bound_init()
215 offload->offdev = ondev->offdev; in __bpf_prog_dev_bound_init()
217 list_add_tail(&offload->offloads, &ondev->progs); in __bpf_prog_dev_bound_init()
373 struct bpf_offload_netdev *ondev; in bpf_prog_dev_bound_destroy() local
384 ondev = bpf_offload_find_netdev(netdev); in bpf_prog_dev_bound_destroy()
385 if (!ondev->offdev && list_empty(&ondev->progs)) in bpf_prog_dev_bound_destroy()
506 struct bpf_offload_netdev *ondev; in bpf_map_offload_map_alloc() local
529 ondev = bpf_offload_find_netdev(offmap->netdev); in bpf_map_offload_map_alloc()
530 if (!ondev) { in bpf_map_offload_map_alloc()
539 list_add_tail(&offmap->offloads, &ondev->maps); in bpf_map_offload_map_alloc()
796 struct bpf_offload_netdev *ondev; in bpf_dev_bound_netdev_unregister() local
801 ondev = bpf_offload_find_netdev(dev); in bpf_dev_bound_netdev_unregister()
802 if (ondev && !ondev->offdev) in bpf_dev_bound_netdev_unregister()
803 __bpf_offload_dev_netdev_unregister(NULL, ondev->netdev); in bpf_dev_bound_netdev_unregister()