Lines Matching full:aux
641 struct bpf_iter_aux_info *aux) in bpf_iter_init_array_map() argument
644 struct bpf_map *map = aux->map; in bpf_iter_init_array_map()
861 mutex_lock(&array->aux->poke_mutex); in bpf_fd_array_map_update_elem()
864 mutex_unlock(&array->aux->poke_mutex); in bpf_fd_array_map_update_elem()
884 mutex_lock(&array->aux->poke_mutex); in fd_array_map_delete_elem()
887 mutex_unlock(&array->aux->poke_mutex); in fd_array_map_delete_elem()
923 return ((struct bpf_prog *)ptr)->aux->id; in prog_fd_array_sys_lookup_elem()
961 struct bpf_prog_aux *aux; member
968 struct bpf_array_aux *aux; in prog_array_map_poke_track() local
971 aux = container_of(map, struct bpf_array, map)->aux; in prog_array_map_poke_track()
972 mutex_lock(&aux->poke_mutex); in prog_array_map_poke_track()
973 list_for_each_entry(elem, &aux->poke_progs, list) { in prog_array_map_poke_track()
974 if (elem->aux == prog_aux) in prog_array_map_poke_track()
985 /* We must track the program's aux info at this point in time in prog_array_map_poke_track()
989 elem->aux = prog_aux; in prog_array_map_poke_track()
991 list_add_tail(&elem->list, &aux->poke_progs); in prog_array_map_poke_track()
993 mutex_unlock(&aux->poke_mutex); in prog_array_map_poke_track()
1001 struct bpf_array_aux *aux; in prog_array_map_poke_untrack() local
1003 aux = container_of(map, struct bpf_array, map)->aux; in prog_array_map_poke_untrack()
1004 mutex_lock(&aux->poke_mutex); in prog_array_map_poke_untrack()
1005 list_for_each_entry_safe(elem, tmp, &aux->poke_progs, list) { in prog_array_map_poke_untrack()
1006 if (elem->aux == prog_aux) { in prog_array_map_poke_untrack()
1012 mutex_unlock(&aux->poke_mutex); in prog_array_map_poke_untrack()
1021 struct bpf_array_aux *aux; in prog_array_map_poke_run() local
1023 aux = container_of(map, struct bpf_array, map)->aux; in prog_array_map_poke_run()
1024 WARN_ON_ONCE(!mutex_is_locked(&aux->poke_mutex)); in prog_array_map_poke_run()
1026 list_for_each_entry(elem, &aux->poke_progs, list) { in prog_array_map_poke_run()
1030 for (i = 0; i < elem->aux->size_poke_tab; i++) { in prog_array_map_poke_run()
1031 poke = &elem->aux->poke_tab[i]; in prog_array_map_poke_run()
1035 * 1) We can only ever access aux in this context, but in prog_array_map_poke_run()
1036 * not aux->prog since it might not be stable yet and in prog_array_map_poke_run()
1038 * 2) Initially when we start tracking aux, the program in prog_array_map_poke_run()
1118 struct bpf_array_aux *aux = container_of(map, struct bpf_array, in prog_array_map_clear() local
1119 map)->aux; in prog_array_map_clear()
1121 schedule_work(&aux->work); in prog_array_map_clear()
1126 struct bpf_array_aux *aux; in prog_array_map_alloc() local
1129 aux = kzalloc(sizeof(*aux), GFP_KERNEL_ACCOUNT); in prog_array_map_alloc()
1130 if (!aux) in prog_array_map_alloc()
1133 INIT_WORK(&aux->work, prog_array_map_clear_deferred); in prog_array_map_alloc()
1134 INIT_LIST_HEAD(&aux->poke_progs); in prog_array_map_alloc()
1135 mutex_init(&aux->poke_mutex); in prog_array_map_alloc()
1139 kfree(aux); in prog_array_map_alloc()
1143 container_of(map, struct bpf_array, map)->aux = aux; in prog_array_map_alloc()
1144 aux->map = map; in prog_array_map_alloc()
1152 struct bpf_array_aux *aux; in prog_array_map_free() local
1154 aux = container_of(map, struct bpf_array, map)->aux; in prog_array_map_free()
1155 list_for_each_entry_safe(elem, tmp, &aux->poke_progs, list) { in prog_array_map_free()
1159 kfree(aux); in prog_array_map_free()
1163 /* prog_array->aux->{type,jited} is a runtime binding.