Lines Matching full:aux

603 				   struct bpf_iter_aux_info *aux)  in bpf_iter_init_array_map()  argument
606 struct bpf_map *map = aux->map; in bpf_iter_init_array_map()
752 mutex_lock(&array->aux->poke_mutex); in bpf_fd_array_map_update_elem()
755 mutex_unlock(&array->aux->poke_mutex); in bpf_fd_array_map_update_elem()
775 mutex_lock(&array->aux->poke_mutex); in fd_array_map_delete_elem()
778 mutex_unlock(&array->aux->poke_mutex); in fd_array_map_delete_elem()
815 return ((struct bpf_prog *)ptr)->aux->id; in prog_fd_array_sys_lookup_elem()
853 struct bpf_prog_aux *aux; member
860 struct bpf_array_aux *aux; in prog_array_map_poke_track() local
863 aux = container_of(map, struct bpf_array, map)->aux; in prog_array_map_poke_track()
864 mutex_lock(&aux->poke_mutex); in prog_array_map_poke_track()
865 list_for_each_entry(elem, &aux->poke_progs, list) { in prog_array_map_poke_track()
866 if (elem->aux == prog_aux) in prog_array_map_poke_track()
877 /* We must track the program's aux info at this point in time in prog_array_map_poke_track()
881 elem->aux = prog_aux; in prog_array_map_poke_track()
883 list_add_tail(&elem->list, &aux->poke_progs); in prog_array_map_poke_track()
885 mutex_unlock(&aux->poke_mutex); in prog_array_map_poke_track()
893 struct bpf_array_aux *aux; in prog_array_map_poke_untrack() local
895 aux = container_of(map, struct bpf_array, map)->aux; in prog_array_map_poke_untrack()
896 mutex_lock(&aux->poke_mutex); in prog_array_map_poke_untrack()
897 list_for_each_entry_safe(elem, tmp, &aux->poke_progs, list) { in prog_array_map_poke_untrack()
898 if (elem->aux == prog_aux) { in prog_array_map_poke_untrack()
904 mutex_unlock(&aux->poke_mutex); in prog_array_map_poke_untrack()
913 struct bpf_array_aux *aux; in prog_array_map_poke_run() local
915 aux = container_of(map, struct bpf_array, map)->aux; in prog_array_map_poke_run()
916 WARN_ON_ONCE(!mutex_is_locked(&aux->poke_mutex)); in prog_array_map_poke_run()
918 list_for_each_entry(elem, &aux->poke_progs, list) { in prog_array_map_poke_run()
922 for (i = 0; i < elem->aux->size_poke_tab; i++) { in prog_array_map_poke_run()
923 poke = &elem->aux->poke_tab[i]; in prog_array_map_poke_run()
927 * 1) We can only ever access aux in this context, but in prog_array_map_poke_run()
928 * not aux->prog since it might not be stable yet and in prog_array_map_poke_run()
930 * 2) Initially when we start tracking aux, the program in prog_array_map_poke_run()
1010 struct bpf_array_aux *aux = container_of(map, struct bpf_array, in prog_array_map_clear() local
1011 map)->aux; in prog_array_map_clear()
1013 schedule_work(&aux->work); in prog_array_map_clear()
1018 struct bpf_array_aux *aux; in prog_array_map_alloc() local
1021 aux = kzalloc(sizeof(*aux), GFP_KERNEL); in prog_array_map_alloc()
1022 if (!aux) in prog_array_map_alloc()
1025 INIT_WORK(&aux->work, prog_array_map_clear_deferred); in prog_array_map_alloc()
1026 INIT_LIST_HEAD(&aux->poke_progs); in prog_array_map_alloc()
1027 mutex_init(&aux->poke_mutex); in prog_array_map_alloc()
1031 kfree(aux); in prog_array_map_alloc()
1035 container_of(map, struct bpf_array, map)->aux = aux; in prog_array_map_alloc()
1036 aux->map = map; in prog_array_map_alloc()
1044 struct bpf_array_aux *aux; in prog_array_map_free() local
1046 aux = container_of(map, struct bpf_array, map)->aux; in prog_array_map_free()
1047 list_for_each_entry_safe(elem, tmp, &aux->poke_progs, list) { in prog_array_map_free()
1051 kfree(aux); in prog_array_map_free()
1055 /* prog_array->aux->{type,jited} is a runtime binding.