Lines Matching full:aux
650 struct bpf_iter_aux_info *aux) in bpf_iter_init_array_map() argument
653 struct bpf_map *map = aux->map; in bpf_iter_init_array_map()
846 mutex_lock(&array->aux->poke_mutex); in bpf_fd_array_map_update_elem()
849 mutex_unlock(&array->aux->poke_mutex); in bpf_fd_array_map_update_elem()
869 mutex_lock(&array->aux->poke_mutex); in fd_array_map_delete_elem()
872 mutex_unlock(&array->aux->poke_mutex); in fd_array_map_delete_elem()
908 return ((struct bpf_prog *)ptr)->aux->id; in prog_fd_array_sys_lookup_elem()
946 struct bpf_prog_aux *aux; member
953 struct bpf_array_aux *aux; in prog_array_map_poke_track() local
956 aux = container_of(map, struct bpf_array, map)->aux; in prog_array_map_poke_track()
957 mutex_lock(&aux->poke_mutex); in prog_array_map_poke_track()
958 list_for_each_entry(elem, &aux->poke_progs, list) { in prog_array_map_poke_track()
959 if (elem->aux == prog_aux) in prog_array_map_poke_track()
970 /* We must track the program's aux info at this point in time in prog_array_map_poke_track()
974 elem->aux = prog_aux; in prog_array_map_poke_track()
976 list_add_tail(&elem->list, &aux->poke_progs); in prog_array_map_poke_track()
978 mutex_unlock(&aux->poke_mutex); in prog_array_map_poke_track()
986 struct bpf_array_aux *aux; in prog_array_map_poke_untrack() local
988 aux = container_of(map, struct bpf_array, map)->aux; in prog_array_map_poke_untrack()
989 mutex_lock(&aux->poke_mutex); in prog_array_map_poke_untrack()
990 list_for_each_entry_safe(elem, tmp, &aux->poke_progs, list) { in prog_array_map_poke_untrack()
991 if (elem->aux == prog_aux) { in prog_array_map_poke_untrack()
997 mutex_unlock(&aux->poke_mutex); in prog_array_map_poke_untrack()
1006 struct bpf_array_aux *aux; in prog_array_map_poke_run() local
1008 aux = container_of(map, struct bpf_array, map)->aux; in prog_array_map_poke_run()
1009 WARN_ON_ONCE(!mutex_is_locked(&aux->poke_mutex)); in prog_array_map_poke_run()
1011 list_for_each_entry(elem, &aux->poke_progs, list) { in prog_array_map_poke_run()
1015 for (i = 0; i < elem->aux->size_poke_tab; i++) { in prog_array_map_poke_run()
1016 poke = &elem->aux->poke_tab[i]; in prog_array_map_poke_run()
1020 * 1) We can only ever access aux in this context, but in prog_array_map_poke_run()
1021 * not aux->prog since it might not be stable yet and in prog_array_map_poke_run()
1023 * 2) Initially when we start tracking aux, the program in prog_array_map_poke_run()
1103 struct bpf_array_aux *aux = container_of(map, struct bpf_array, in prog_array_map_clear() local
1104 map)->aux; in prog_array_map_clear()
1106 schedule_work(&aux->work); in prog_array_map_clear()
1111 struct bpf_array_aux *aux; in prog_array_map_alloc() local
1114 aux = kzalloc(sizeof(*aux), GFP_KERNEL_ACCOUNT); in prog_array_map_alloc()
1115 if (!aux) in prog_array_map_alloc()
1118 INIT_WORK(&aux->work, prog_array_map_clear_deferred); in prog_array_map_alloc()
1119 INIT_LIST_HEAD(&aux->poke_progs); in prog_array_map_alloc()
1120 mutex_init(&aux->poke_mutex); in prog_array_map_alloc()
1124 kfree(aux); in prog_array_map_alloc()
1128 container_of(map, struct bpf_array, map)->aux = aux; in prog_array_map_alloc()
1129 aux->map = map; in prog_array_map_alloc()
1137 struct bpf_array_aux *aux; in prog_array_map_free() local
1139 aux = container_of(map, struct bpf_array, map)->aux; in prog_array_map_free()
1140 list_for_each_entry_safe(elem, tmp, &aux->poke_progs, list) { in prog_array_map_free()
1144 kfree(aux); in prog_array_map_free()
1148 /* prog_array->aux->{type,jited} is a runtime binding.