Lines Matching refs:offmap

120 static int bpf_map_offload_ndo(struct bpf_offloaded_map *offmap,
129 data.offmap = offmap;
131 netdev = offmap->netdev;
136 static void __bpf_map_offload_destroy(struct bpf_offloaded_map *offmap)
138 WARN_ON(bpf_map_offload_ndo(offmap, BPF_OFFLOAD_MAP_FREE));
140 bpf_map_free_id(&offmap->map);
141 list_del_init(&offmap->offloads);
142 offmap->netdev = NULL;
149 struct bpf_offloaded_map *offmap, *mtmp;
173 list_for_each_entry(offmap, &ondev->maps, offloads)
174 offmap->netdev = altdev->netdev;
179 list_for_each_entry_safe(offmap, mtmp, &ondev->maps, offloads)
180 __bpf_map_offload_destroy(offmap);
517 struct bpf_offloaded_map *offmap;
526 offmap = bpf_map_area_alloc(sizeof(*offmap), NUMA_NO_NODE);
527 if (!offmap)
530 bpf_map_init_from_attr(&offmap->map, attr);
534 offmap->netdev = __dev_get_by_index(net, attr->map_ifindex);
535 err = bpf_dev_offload_check(offmap->netdev);
539 ondev = bpf_offload_find_netdev(offmap->netdev);
545 err = bpf_map_offload_ndo(offmap, BPF_OFFLOAD_MAP_ALLOC);
549 list_add_tail(&offmap->offloads, &ondev->maps);
553 return &offmap->map;
558 bpf_map_area_free(offmap);
564 struct bpf_offloaded_map *offmap = map_to_offmap(map);
568 if (offmap->netdev)
569 __bpf_map_offload_destroy(offmap);
573 bpf_map_area_free(offmap);
584 struct bpf_offloaded_map *offmap = map_to_offmap(map);
588 if (offmap->netdev)
589 ret = offmap->dev_ops->map_lookup_elem(offmap, key, value);
598 struct bpf_offloaded_map *offmap = map_to_offmap(map);
605 if (offmap->netdev)
606 ret = offmap->dev_ops->map_update_elem(offmap, key, value,
615 struct bpf_offloaded_map *offmap = map_to_offmap(map);
619 if (offmap->netdev)
620 ret = offmap->dev_ops->map_delete_elem(offmap, key);
628 struct bpf_offloaded_map *offmap = map_to_offmap(map);
632 if (offmap->netdev)
633 ret = offmap->dev_ops->map_get_next_key(offmap, key, next_key);
640 struct bpf_offloaded_map *offmap;
653 if (args->offmap->netdev) {
654 args->info->ifindex = args->offmap->netdev->ifindex;
655 net = dev_net(args->offmap->netdev);
672 .offmap = map_to_offmap(map),
745 struct bpf_offloaded_map *offmap;
750 offmap = map_to_offmap(map);
753 ret = __bpf_offload_dev_match(prog, offmap->netdev);