Lines Matching refs:ondev
82 struct bpf_offload_netdev *ondev; in bpf_prog_offload_init() local
106 ondev = bpf_offload_find_netdev(offload->netdev); in bpf_prog_offload_init()
107 if (!ondev) { in bpf_prog_offload_init()
111 offload->offdev = ondev->offdev; in bpf_prog_offload_init()
113 list_add_tail(&offload->offloads, &ondev->progs); in bpf_prog_offload_init()
365 struct bpf_offload_netdev *ondev; in bpf_map_offload_map_alloc() local
388 ondev = bpf_offload_find_netdev(offmap->netdev); in bpf_map_offload_map_alloc()
389 if (!ondev) { in bpf_map_offload_map_alloc()
398 list_add_tail(&offmap->offloads, &ondev->maps); in bpf_map_offload_map_alloc()
598 struct bpf_offload_netdev *ondev; in bpf_offload_dev_netdev_register() local
601 ondev = kzalloc(sizeof(*ondev), GFP_KERNEL); in bpf_offload_dev_netdev_register()
602 if (!ondev) in bpf_offload_dev_netdev_register()
605 ondev->netdev = netdev; in bpf_offload_dev_netdev_register()
606 ondev->offdev = offdev; in bpf_offload_dev_netdev_register()
607 INIT_LIST_HEAD(&ondev->progs); in bpf_offload_dev_netdev_register()
608 INIT_LIST_HEAD(&ondev->maps); in bpf_offload_dev_netdev_register()
611 err = rhashtable_insert_fast(&offdevs, &ondev->l, offdevs_params); in bpf_offload_dev_netdev_register()
617 list_add(&ondev->offdev_netdevs, &offdev->netdevs); in bpf_offload_dev_netdev_register()
623 kfree(ondev); in bpf_offload_dev_netdev_register()
631 struct bpf_offload_netdev *ondev, *altdev; in bpf_offload_dev_netdev_unregister() local
638 ondev = rhashtable_lookup_fast(&offdevs, &netdev, offdevs_params); in bpf_offload_dev_netdev_unregister()
639 if (WARN_ON(!ondev)) in bpf_offload_dev_netdev_unregister()
642 WARN_ON(rhashtable_remove_fast(&offdevs, &ondev->l, offdevs_params)); in bpf_offload_dev_netdev_unregister()
643 list_del(&ondev->offdev_netdevs); in bpf_offload_dev_netdev_unregister()
650 list_for_each_entry(offload, &ondev->progs, offloads) in bpf_offload_dev_netdev_unregister()
652 list_splice_init(&ondev->progs, &altdev->progs); in bpf_offload_dev_netdev_unregister()
654 list_for_each_entry(offmap, &ondev->maps, offloads) in bpf_offload_dev_netdev_unregister()
656 list_splice_init(&ondev->maps, &altdev->maps); in bpf_offload_dev_netdev_unregister()
658 list_for_each_entry_safe(offload, ptmp, &ondev->progs, offloads) in bpf_offload_dev_netdev_unregister()
660 list_for_each_entry_safe(offmap, mtmp, &ondev->maps, offloads) in bpf_offload_dev_netdev_unregister()
664 WARN_ON(!list_empty(&ondev->progs)); in bpf_offload_dev_netdev_unregister()
665 WARN_ON(!list_empty(&ondev->maps)); in bpf_offload_dev_netdev_unregister()
666 kfree(ondev); in bpf_offload_dev_netdev_unregister()