Lines Matching refs:cmap

59 	struct bpf_cpu_map *cmap;  member
85 struct bpf_cpu_map *cmap; in cpu_map_alloc() local
100 cmap = kzalloc(sizeof(*cmap), GFP_USER); in cpu_map_alloc()
101 if (!cmap) in cpu_map_alloc()
104 bpf_map_init_from_attr(&cmap->map, attr); in cpu_map_alloc()
107 if (cmap->map.max_entries > NR_CPUS) { in cpu_map_alloc()
113 cost = (u64) cmap->map.max_entries * sizeof(struct bpf_cpu_map_entry *); in cpu_map_alloc()
116 ret = bpf_map_charge_init(&cmap->map.memory, cost); in cpu_map_alloc()
123 cmap->cpu_map = bpf_map_area_alloc(cmap->map.max_entries * in cpu_map_alloc()
125 cmap->map.numa_node); in cpu_map_alloc()
126 if (!cmap->cpu_map) in cpu_map_alloc()
129 return &cmap->map; in cpu_map_alloc()
131 bpf_map_charge_finish(&cmap->map.memory); in cpu_map_alloc()
133 kfree(cmap); in cpu_map_alloc()
520 static void __cpu_map_entry_replace(struct bpf_cpu_map *cmap, in __cpu_map_entry_replace() argument
525 old_rcpu = xchg(&cmap->cpu_map[key_cpu], rcpu); in __cpu_map_entry_replace()
535 struct bpf_cpu_map *cmap = container_of(map, struct bpf_cpu_map, map); in cpu_map_delete_elem() local
542 __cpu_map_entry_replace(cmap, key_cpu, NULL); in cpu_map_delete_elem()
549 struct bpf_cpu_map *cmap = container_of(map, struct bpf_cpu_map, map); in cpu_map_update_elem() local
559 if (unlikely(key_cpu >= cmap->map.max_entries)) in cpu_map_update_elem()
577 rcpu->cmap = cmap; in cpu_map_update_elem()
580 __cpu_map_entry_replace(cmap, key_cpu, rcpu); in cpu_map_update_elem()
587 struct bpf_cpu_map *cmap = container_of(map, struct bpf_cpu_map, map); in cpu_map_free() local
605 for (i = 0; i < cmap->map.max_entries; i++) { in cpu_map_free()
608 rcpu = READ_ONCE(cmap->cpu_map[i]); in cpu_map_free()
613 __cpu_map_entry_replace(cmap, i, NULL); /* call_rcu */ in cpu_map_free()
615 bpf_map_area_free(cmap->cpu_map); in cpu_map_free()
616 kfree(cmap); in cpu_map_free()
621 struct bpf_cpu_map *cmap = container_of(map, struct bpf_cpu_map, map); in __cpu_map_lookup_elem() local
627 rcpu = READ_ONCE(cmap->cpu_map[key]); in __cpu_map_lookup_elem()
641 struct bpf_cpu_map *cmap = container_of(map, struct bpf_cpu_map, map); in cpu_map_get_next_key() local
645 if (index >= cmap->map.max_entries) { in cpu_map_get_next_key()
650 if (index == cmap->map.max_entries - 1) in cpu_map_get_next_key()