Lines Matching refs:func_id
287 int func_id; member
300 u32 func_id; member
473 static bool is_acquire_function(enum bpf_func_id func_id, in is_acquire_function() argument
478 if (func_id == BPF_FUNC_sk_lookup_tcp || in is_acquire_function()
479 func_id == BPF_FUNC_sk_lookup_udp || in is_acquire_function()
480 func_id == BPF_FUNC_skc_lookup_tcp || in is_acquire_function()
481 func_id == BPF_FUNC_ringbuf_reserve || in is_acquire_function()
482 func_id == BPF_FUNC_kptr_xchg) in is_acquire_function()
485 if (func_id == BPF_FUNC_map_lookup_elem && in is_acquire_function()
493 static bool is_ptr_cast_function(enum bpf_func_id func_id) in is_ptr_cast_function() argument
495 return func_id == BPF_FUNC_tcp_sock || in is_ptr_cast_function()
496 func_id == BPF_FUNC_sk_fullsock || in is_ptr_cast_function()
497 func_id == BPF_FUNC_skc_to_tcp_sock || in is_ptr_cast_function()
498 func_id == BPF_FUNC_skc_to_tcp6_sock || in is_ptr_cast_function()
499 func_id == BPF_FUNC_skc_to_udp6_sock || in is_ptr_cast_function()
500 func_id == BPF_FUNC_skc_to_mptcp_sock || in is_ptr_cast_function()
501 func_id == BPF_FUNC_skc_to_tcp_timewait_sock || in is_ptr_cast_function()
502 func_id == BPF_FUNC_skc_to_tcp_request_sock; in is_ptr_cast_function()
505 static bool is_dynptr_ref_function(enum bpf_func_id func_id) in is_dynptr_ref_function() argument
507 return func_id == BPF_FUNC_dynptr_data; in is_dynptr_ref_function()
516 static bool is_task_work_add_kfunc(u32 func_id);
518 static bool is_sync_callback_calling_function(enum bpf_func_id func_id) in is_sync_callback_calling_function() argument
520 return func_id == BPF_FUNC_for_each_map_elem || in is_sync_callback_calling_function()
521 func_id == BPF_FUNC_find_vma || in is_sync_callback_calling_function()
522 func_id == BPF_FUNC_loop || in is_sync_callback_calling_function()
523 func_id == BPF_FUNC_user_ringbuf_drain; in is_sync_callback_calling_function()
526 static bool is_async_callback_calling_function(enum bpf_func_id func_id) in is_async_callback_calling_function() argument
528 return func_id == BPF_FUNC_timer_set_callback; in is_async_callback_calling_function()
531 static bool is_callback_calling_function(enum bpf_func_id func_id) in is_callback_calling_function() argument
533 return is_sync_callback_calling_function(func_id) || in is_callback_calling_function()
534 is_async_callback_calling_function(func_id); in is_callback_calling_function()
574 static bool is_storage_get_function(enum bpf_func_id func_id) in is_storage_get_function() argument
576 return func_id == BPF_FUNC_sk_storage_get || in is_storage_get_function()
577 func_id == BPF_FUNC_inode_storage_get || in is_storage_get_function()
578 func_id == BPF_FUNC_task_storage_get || in is_storage_get_function()
579 func_id == BPF_FUNC_cgrp_storage_get; in is_storage_get_function()
582 static bool helper_multiple_ref_obj_use(enum bpf_func_id func_id, in helper_multiple_ref_obj_use() argument
587 if (is_ptr_cast_function(func_id)) in helper_multiple_ref_obj_use()
589 if (is_acquire_function(func_id, map)) in helper_multiple_ref_obj_use()
591 if (is_dynptr_ref_function(func_id)) in helper_multiple_ref_obj_use()
3100 u32 func_id; member
3136 return d0->func_id - d1->func_id ?: d0->offset - d1->offset; in kfunc_desc_cmp_by_id_off()
3148 find_kfunc_desc(const struct bpf_prog *prog, u32 func_id, u16 offset) in find_kfunc_desc() argument
3151 .func_id = func_id, in find_kfunc_desc()
3161 int bpf_get_kfunc_addr(const struct bpf_prog *prog, u32 func_id, in bpf_get_kfunc_addr() argument
3166 desc = find_kfunc_desc(prog, func_id, btf_fd_idx); in bpf_get_kfunc_addr()
3266 static int add_kfunc_call(struct bpf_verifier_env *env, u32 func_id, s16 offset) in add_kfunc_call() argument
3315 if (!func_id && !offset) in add_kfunc_call()
3331 if (find_kfunc_desc(env->prog, func_id, offset)) in add_kfunc_call()
3339 func = btf_type_by_id(desc_btf, func_id); in add_kfunc_call()
3342 func_id); in add_kfunc_call()
3348 func_id); in add_kfunc_call()
3360 if (bpf_dev_bound_kfunc_id(func_id)) { in add_kfunc_call()
3373 desc->func_id = func_id; in add_kfunc_call()
3399 call_imm = desc->func_id; in set_kfunc_desc_imm()
3405 desc->func_id); in set_kfunc_desc_imm()
9179 if (meta->func_id == BPF_FUNC_map_peek_elem) in resolve_map_arg_type()
9335 if (meta->func_id == BPF_FUNC_kptr_xchg && type_is_alloc(type) && regno == BPF_REG_2) { in check_reg_type()
9363 func_id_name(meta->func_id), in check_reg_type()
9383 meta->func_id != BPF_FUNC_sk_release; in check_reg_type()
9399 if (meta->func_id == BPF_FUNC_kptr_xchg) { in check_reg_type()
9423 if (meta->func_id != BPF_FUNC_spin_lock && meta->func_id != BPF_FUNC_spin_unlock && in check_reg_type()
9424 meta->func_id != BPF_FUNC_kptr_xchg) { in check_reg_type()
9429 if (meta->func_id == BPF_FUNC_kptr_xchg && regno == BPF_REG_2) { in check_reg_type()
9905 if (meta->func_id == BPF_FUNC_spin_lock) { in check_func_arg()
9909 } else if (meta->func_id == BPF_FUNC_spin_unlock) { in check_func_arg()
9986 static bool may_update_sockmap(struct bpf_verifier_env *env, int func_id) in may_update_sockmap() argument
9991 if (func_id != BPF_FUNC_map_update_elem && in may_update_sockmap()
9992 func_id != BPF_FUNC_map_delete_elem) in may_update_sockmap()
10005 if (func_id == BPF_FUNC_map_delete_elem) in may_update_sockmap()
10031 struct bpf_map *map, int func_id) in check_map_func_compatibility() argument
10039 if (func_id != BPF_FUNC_tail_call) in check_map_func_compatibility()
10043 if (func_id != BPF_FUNC_perf_event_read && in check_map_func_compatibility()
10044 func_id != BPF_FUNC_perf_event_output && in check_map_func_compatibility()
10045 func_id != BPF_FUNC_skb_output && in check_map_func_compatibility()
10046 func_id != BPF_FUNC_perf_event_read_value && in check_map_func_compatibility()
10047 func_id != BPF_FUNC_xdp_output) in check_map_func_compatibility()
10051 if (func_id != BPF_FUNC_ringbuf_output && in check_map_func_compatibility()
10052 func_id != BPF_FUNC_ringbuf_reserve && in check_map_func_compatibility()
10053 func_id != BPF_FUNC_ringbuf_query && in check_map_func_compatibility()
10054 func_id != BPF_FUNC_ringbuf_reserve_dynptr && in check_map_func_compatibility()
10055 func_id != BPF_FUNC_ringbuf_submit_dynptr && in check_map_func_compatibility()
10056 func_id != BPF_FUNC_ringbuf_discard_dynptr) in check_map_func_compatibility()
10060 if (func_id != BPF_FUNC_user_ringbuf_drain) in check_map_func_compatibility()
10064 if (func_id != BPF_FUNC_get_stackid) in check_map_func_compatibility()
10068 if (func_id != BPF_FUNC_skb_under_cgroup && in check_map_func_compatibility()
10069 func_id != BPF_FUNC_current_task_under_cgroup) in check_map_func_compatibility()
10074 if (func_id != BPF_FUNC_get_local_storage) in check_map_func_compatibility()
10079 if (func_id != BPF_FUNC_redirect_map && in check_map_func_compatibility()
10080 func_id != BPF_FUNC_map_lookup_elem) in check_map_func_compatibility()
10087 if (func_id != BPF_FUNC_redirect_map) in check_map_func_compatibility()
10091 if (func_id != BPF_FUNC_redirect_map && in check_map_func_compatibility()
10092 func_id != BPF_FUNC_map_lookup_elem) in check_map_func_compatibility()
10097 if (func_id != BPF_FUNC_map_lookup_elem) in check_map_func_compatibility()
10101 if (func_id != BPF_FUNC_sk_redirect_map && in check_map_func_compatibility()
10102 func_id != BPF_FUNC_sock_map_update && in check_map_func_compatibility()
10103 func_id != BPF_FUNC_msg_redirect_map && in check_map_func_compatibility()
10104 func_id != BPF_FUNC_sk_select_reuseport && in check_map_func_compatibility()
10105 func_id != BPF_FUNC_map_lookup_elem && in check_map_func_compatibility()
10106 !may_update_sockmap(env, func_id)) in check_map_func_compatibility()
10110 if (func_id != BPF_FUNC_sk_redirect_hash && in check_map_func_compatibility()
10111 func_id != BPF_FUNC_sock_hash_update && in check_map_func_compatibility()
10112 func_id != BPF_FUNC_msg_redirect_hash && in check_map_func_compatibility()
10113 func_id != BPF_FUNC_sk_select_reuseport && in check_map_func_compatibility()
10114 func_id != BPF_FUNC_map_lookup_elem && in check_map_func_compatibility()
10115 !may_update_sockmap(env, func_id)) in check_map_func_compatibility()
10119 if (func_id != BPF_FUNC_sk_select_reuseport) in check_map_func_compatibility()
10124 if (func_id != BPF_FUNC_map_peek_elem && in check_map_func_compatibility()
10125 func_id != BPF_FUNC_map_pop_elem && in check_map_func_compatibility()
10126 func_id != BPF_FUNC_map_push_elem) in check_map_func_compatibility()
10130 if (func_id != BPF_FUNC_sk_storage_get && in check_map_func_compatibility()
10131 func_id != BPF_FUNC_sk_storage_delete && in check_map_func_compatibility()
10132 func_id != BPF_FUNC_kptr_xchg) in check_map_func_compatibility()
10136 if (func_id != BPF_FUNC_inode_storage_get && in check_map_func_compatibility()
10137 func_id != BPF_FUNC_inode_storage_delete && in check_map_func_compatibility()
10138 func_id != BPF_FUNC_kptr_xchg) in check_map_func_compatibility()
10142 if (func_id != BPF_FUNC_task_storage_get && in check_map_func_compatibility()
10143 func_id != BPF_FUNC_task_storage_delete && in check_map_func_compatibility()
10144 func_id != BPF_FUNC_kptr_xchg) in check_map_func_compatibility()
10148 if (func_id != BPF_FUNC_cgrp_storage_get && in check_map_func_compatibility()
10149 func_id != BPF_FUNC_cgrp_storage_delete && in check_map_func_compatibility()
10150 func_id != BPF_FUNC_kptr_xchg) in check_map_func_compatibility()
10154 if (func_id != BPF_FUNC_map_peek_elem && in check_map_func_compatibility()
10155 func_id != BPF_FUNC_map_push_elem) in check_map_func_compatibility()
10165 switch (func_id) { in check_map_func_compatibility()
10279 map->map_type, func_id_name(func_id), func_id); in check_map_func_compatibility()
10357 static int check_func_proto(const struct bpf_func_proto *fn, int func_id) in check_func_proto() argument
11168 int func_id, in do_refine_retval_range() argument
11176 switch (func_id) { in do_refine_retval_range()
11206 int func_id, int insn_idx) in record_func_map() argument
11211 if (func_id != BPF_FUNC_tail_call && in record_func_map()
11212 func_id != BPF_FUNC_map_lookup_elem && in record_func_map()
11213 func_id != BPF_FUNC_map_update_elem && in record_func_map()
11214 func_id != BPF_FUNC_map_delete_elem && in record_func_map()
11215 func_id != BPF_FUNC_map_push_elem && in record_func_map()
11216 func_id != BPF_FUNC_map_pop_elem && in record_func_map()
11217 func_id != BPF_FUNC_map_peek_elem && in record_func_map()
11218 func_id != BPF_FUNC_for_each_map_elem && in record_func_map()
11219 func_id != BPF_FUNC_redirect_map && in record_func_map()
11220 func_id != BPF_FUNC_map_lookup_percpu_elem) in record_func_map()
11233 (func_id == BPF_FUNC_map_delete_elem || in record_func_map()
11234 func_id == BPF_FUNC_map_update_elem || in record_func_map()
11235 func_id == BPF_FUNC_map_push_elem || in record_func_map()
11236 func_id == BPF_FUNC_map_pop_elem)) { in record_func_map()
11252 int func_id, int insn_idx) in record_func_key() argument
11260 if (func_id != BPF_FUNC_tail_call) in record_func_key()
11388 int func_id = BPF_FUNC_get_func_ip; in check_get_func_ip() local
11393 func_id_name(func_id), func_id); in check_get_func_ip()
11402 func_id_name(func_id), func_id, type); in check_get_func_ip()
11456 static int get_helper_proto(struct bpf_verifier_env *env, int func_id, in get_helper_proto() argument
11459 if (func_id < 0 || func_id >= __BPF_FUNC_MAX_ID) in get_helper_proto()
11465 *ptr = env->ops->get_func_proto(func_id, env->prog); in get_helper_proto()
11490 int i, err, func_id; in check_helper_call() local
11493 func_id = insn->imm; in check_helper_call()
11496 verbose(env, "invalid func %s#%d\n", func_id_name(func_id), func_id); in check_helper_call()
11502 func_id_name(func_id), func_id); in check_helper_call()
11523 changes_data = bpf_helper_changes_pkt_data(func_id); in check_helper_call()
11525 verifier_bug(env, "func %s#%d: r1 != ctx", func_id_name(func_id), func_id); in check_helper_call()
11532 err = check_func_proto(fn, func_id); in check_helper_call()
11534 verifier_bug(env, "incorrect func proto %s#%d", func_id_name(func_id), func_id); in check_helper_call()
11541 func_id_name(func_id), func_id); in check_helper_call()
11549 func_id_name(func_id), func_id); in check_helper_call()
11557 func_id_name(func_id), func_id); in check_helper_call()
11566 meta.func_id = func_id; in check_helper_call()
11574 err = record_func_map(env, &meta, func_id, insn_idx); in check_helper_call()
11578 err = record_func_key(env, &meta, func_id, insn_idx); in check_helper_call()
11598 } else if (func_id == BPF_FUNC_kptr_xchg && meta.ref_obj_id) { in check_helper_call()
11628 func_id_name(func_id), func_id); in check_helper_call()
11633 switch (func_id) { in check_helper_call()
11817 if (func_id == BPF_FUNC_map_lookup_elem && in check_helper_call()
11894 if (func_id == BPF_FUNC_kptr_xchg) { in check_helper_call()
11905 func_id_name(func_id)); in check_helper_call()
11913 base_type(ret_type), func_id_name(func_id), in check_helper_call()
11914 func_id); in check_helper_call()
11923 base_type(ret_type), func_id_name(func_id), func_id); in check_helper_call()
11930 if (helper_multiple_ref_obj_use(func_id, meta.map_ptr)) { in check_helper_call()
11932 func_id_name(func_id), func_id); in check_helper_call()
11936 if (is_dynptr_ref_function(func_id)) in check_helper_call()
11939 if (is_ptr_cast_function(func_id) || is_dynptr_ref_function(func_id)) { in check_helper_call()
11942 } else if (is_acquire_function(func_id, meta.map_ptr)) { in check_helper_call()
11953 err = do_refine_retval_range(env, regs, fn->ret_type, func_id, &meta); in check_helper_call()
11957 err = check_map_func_compatibility(env, meta.map_ptr, func_id); in check_helper_call()
11961 if ((func_id == BPF_FUNC_get_stack || in check_helper_call()
11962 func_id == BPF_FUNC_get_task_stack) && in check_helper_call()
11974 verbose(env, err_str, func_id_name(func_id), func_id); in check_helper_call()
11981 if (func_id == BPF_FUNC_get_stackid || func_id == BPF_FUNC_get_stack) in check_helper_call()
11984 if (func_id == BPF_FUNC_get_func_ip) { in check_helper_call()
11990 if (func_id == BPF_FUNC_tail_call) { in check_helper_call()
12463 static bool is_task_work_add_kfunc(u32 func_id) in BTF_ID()
12465 return func_id == special_kfunc_list[KF_bpf_task_work_schedule_signal_impl] || in BTF_ID()
12466 func_id == special_kfunc_list[KF_bpf_task_work_schedule_resume_impl]; in BTF_ID()
12471 if (meta->func_id == special_kfunc_list[KF_bpf_refcount_acquire_impl] && in is_kfunc_ret_null()
12481 return meta->func_id == special_kfunc_list[KF_bpf_rcu_read_lock]; in is_kfunc_bpf_rcu_read_lock()
12486 return meta->func_id == special_kfunc_list[KF_bpf_rcu_read_unlock]; in is_kfunc_bpf_rcu_read_unlock()
12491 return meta->func_id == special_kfunc_list[KF_bpf_preempt_disable]; in is_kfunc_bpf_preempt_disable()
12496 return meta->func_id == special_kfunc_list[KF_bpf_preempt_enable]; in is_kfunc_bpf_preempt_enable()
12501 return meta->func_id == special_kfunc_list[KF_bpf_xdp_pull_data]; in is_kfunc_pkt_changing()
12516 if (meta->func_id == special_kfunc_list[KF_bpf_cast_to_kern_ctx]) in get_kfunc_ptr_arg_type()
12682 if (meta->func_id == special_kfunc_list[KF_bpf_local_irq_save] || in process_irq_flag()
12683 meta->func_id == special_kfunc_list[KF_bpf_res_spin_lock_irqsave]) { in process_irq_flag()
12685 if (meta->func_id == special_kfunc_list[KF_bpf_res_spin_lock_irqsave]) in process_irq_flag()
12687 } else if (meta->func_id == special_kfunc_list[KF_bpf_local_irq_restore] || in process_irq_flag()
12688 meta->func_id == special_kfunc_list[KF_bpf_res_spin_unlock_irqrestore]) { in process_irq_flag()
12690 if (meta->func_id == special_kfunc_list[KF_bpf_res_spin_unlock_irqrestore]) in process_irq_flag()
13006 if (!check_kfunc_is_graph_root_api(env, head_field_type, meta->func_id)) in __process_kf_arg_ptr_to_graph_root()
13074 if (!check_kfunc_is_graph_node_api(env, node_field_type, meta->func_id)) in __process_kf_arg_ptr_to_graph_node()
13374 if (meta->func_id == special_kfunc_list[KF_bpf_cast_to_kern_ctx]) { in check_kfunc_args()
13383 if (meta->func_id != special_kfunc_list[KF_bpf_obj_drop_impl]) { in check_kfunc_args()
13388 if (meta->func_id != special_kfunc_list[KF_bpf_percpu_obj_drop_impl]) { in check_kfunc_args()
13416 if (meta->func_id == special_kfunc_list[KF_bpf_dynptr_from_skb]) { in check_kfunc_args()
13418 } else if (meta->func_id == special_kfunc_list[KF_bpf_dynptr_from_xdp]) { in check_kfunc_args()
13420 } else if (meta->func_id == special_kfunc_list[KF_bpf_dynptr_from_skb_meta]) { in check_kfunc_args()
13422 } else if (meta->func_id == special_kfunc_list[KF_bpf_dynptr_from_file]) { in check_kfunc_args()
13424 } else if (meta->func_id == special_kfunc_list[KF_bpf_dynptr_file_discard]) { in check_kfunc_args()
13427 } else if (meta->func_id == special_kfunc_list[KF_bpf_dynptr_clone] && in check_kfunc_args()
13463 if (meta->func_id == special_kfunc_list[KF_bpf_iter_css_task_new]) { in check_kfunc_args()
13515 if (meta->func_id == special_kfunc_list[KF_bpf_rbtree_add_impl]) { in check_kfunc_args()
13677 if (!is_bpf_res_spin_lock_kfunc(meta->func_id)) in check_kfunc_args()
13679 if (meta->func_id == special_kfunc_list[KF_bpf_res_spin_lock] || in check_kfunc_args()
13680 meta->func_id == special_kfunc_list[KF_bpf_res_spin_lock_irqsave]) in check_kfunc_args()
13682 if (meta->func_id == special_kfunc_list[KF_bpf_res_spin_lock_irqsave] || in check_kfunc_args()
13683 meta->func_id == special_kfunc_list[KF_bpf_res_spin_unlock_irqrestore]) in check_kfunc_args()
13708 u32 func_id, *kfunc_flags; in fetch_kfunc_meta() local
13722 func_id = insn->imm; in fetch_kfunc_meta()
13723 func = btf_type_by_id(desc_btf, func_id); in fetch_kfunc_meta()
13729 kfunc_flags = btf_kfunc_id_set_contains(desc_btf, func_id, env->prog); in fetch_kfunc_meta()
13736 meta->func_id = func_id; in fetch_kfunc_meta()
13759 if (meta->func_id == special_kfunc_list[KF_bpf_obj_new_impl] || in check_special_kfunc()
13760 meta->func_id == special_kfunc_list[KF_bpf_percpu_obj_new_impl]) { in check_special_kfunc()
13765 if (meta->func_id == special_kfunc_list[KF_bpf_obj_new_impl] && !bpf_global_ma_set) in check_special_kfunc()
13788 if (meta->func_id == special_kfunc_list[KF_bpf_percpu_obj_new_impl]) { in check_special_kfunc()
13818 if (meta->func_id == special_kfunc_list[KF_bpf_percpu_obj_new_impl]) { in check_special_kfunc()
13834 if (meta->func_id == special_kfunc_list[KF_bpf_percpu_obj_new_impl]) in check_special_kfunc()
13839 } else if (meta->func_id == special_kfunc_list[KF_bpf_refcount_acquire_impl]) { in check_special_kfunc()
13856 } else if (meta->func_id == special_kfunc_list[KF_bpf_cast_to_kern_ctx]) { in check_special_kfunc()
13861 } else if (meta->func_id == special_kfunc_list[KF_bpf_rdonly_cast]) { in check_special_kfunc()
13881 } else if (meta->func_id == special_kfunc_list[KF_bpf_dynptr_slice] || in check_special_kfunc()
13882 meta->func_id == special_kfunc_list[KF_bpf_dynptr_slice_rdwr]) { in check_special_kfunc()
13897 if (meta->func_id == special_kfunc_list[KF_bpf_dynptr_slice]) { in check_special_kfunc()
14004 if (meta.func_id == special_kfunc_list[KF_bpf_rbtree_add_impl]) { in check_kfunc_call()
14009 func_name, meta.func_id); in check_kfunc_call()
14014 if (meta.func_id == special_kfunc_list[KF_bpf_session_cookie]) { in check_kfunc_call()
14019 if (is_bpf_wq_set_callback_impl_kfunc(meta.func_id)) { in check_kfunc_call()
14024 func_name, meta.func_id); in check_kfunc_call()
14029 if (is_task_work_add_kfunc(meta.func_id)) { in check_kfunc_call()
14034 func_name, meta.func_id); in check_kfunc_call()
14112 func_name, meta.func_id); in check_kfunc_call()
14118 if (meta.func_id == special_kfunc_list[KF_bpf_list_push_front_impl] || in check_kfunc_call()
14119 meta.func_id == special_kfunc_list[KF_bpf_list_push_back_impl] || in check_kfunc_call()
14120 meta.func_id == special_kfunc_list[KF_bpf_rbtree_add_impl]) { in check_kfunc_call()
14127 func_name, meta.func_id); in check_kfunc_call()
14134 func_name, meta.func_id); in check_kfunc_call()
14139 if (meta.func_id == special_kfunc_list[KF_bpf_throw]) { in check_kfunc_call()
14142 func_name, meta.func_id); in check_kfunc_call()
14166 (meta.func_id != special_kfunc_list[KF_bpf_obj_new_impl] && in check_kfunc_call()
14167 meta.func_id != special_kfunc_list[KF_bpf_percpu_obj_new_impl] && in check_kfunc_call()
14168 meta.func_id != special_kfunc_list[KF_bpf_refcount_acquire_impl])) { in check_kfunc_call()
14176 if (meta.btf == btf_vmlinux && (meta.func_id == special_kfunc_list[KF_bpf_res_spin_lock] || in check_kfunc_call()
14177 meta.func_id == special_kfunc_list[KF_bpf_res_spin_lock_irqsave])) in check_kfunc_call()
14228 if (meta.func_id == special_kfunc_list[KF_bpf_get_kmem_cache]) in check_kfunc_call()
14267 if (meta.func_id == special_kfunc_list[KF_bpf_obj_drop_impl] || in check_kfunc_call()
14268 meta.func_id == special_kfunc_list[KF_bpf_percpu_obj_drop_impl]) { in check_kfunc_call()
22417 u32 func_id = desc->func_id; in specialize_kfunc() local
22424 if (bpf_dev_bound_kfunc_id(func_id)) { in specialize_kfunc()
22425 xdp_kfunc = bpf_dev_bound_resolve_kfunc(prog, func_id); in specialize_kfunc()
22429 } else if (func_id == special_kfunc_list[KF_bpf_dynptr_from_skb]) { in specialize_kfunc()
22440 } else if (func_id == special_kfunc_list[KF_bpf_set_dentry_xattr]) { in specialize_kfunc()
22443 } else if (func_id == special_kfunc_list[KF_bpf_remove_dentry_xattr]) { in specialize_kfunc()
22446 } else if (func_id == special_kfunc_list[KF_bpf_dynptr_from_file]) { in specialize_kfunc()
22503 if (desc->func_id == special_kfunc_list[KF_bpf_obj_new_impl] || in fixup_kfunc_call()
22504 desc->func_id == special_kfunc_list[KF_bpf_percpu_obj_new_impl]) { in fixup_kfunc_call()
22509 if (desc->func_id == special_kfunc_list[KF_bpf_percpu_obj_new_impl] && kptr_struct_meta) { in fixup_kfunc_call()
22520 } else if (desc->func_id == special_kfunc_list[KF_bpf_obj_drop_impl] || in fixup_kfunc_call()
22521 desc->func_id == special_kfunc_list[KF_bpf_percpu_obj_drop_impl] || in fixup_kfunc_call()
22522 desc->func_id == special_kfunc_list[KF_bpf_refcount_acquire_impl]) { in fixup_kfunc_call()
22526 if (desc->func_id == special_kfunc_list[KF_bpf_percpu_obj_drop_impl] && kptr_struct_meta) { in fixup_kfunc_call()
22532 if (desc->func_id == special_kfunc_list[KF_bpf_refcount_acquire_impl] && in fixup_kfunc_call()
22543 } else if (desc->func_id == special_kfunc_list[KF_bpf_list_push_back_impl] || in fixup_kfunc_call()
22544 desc->func_id == special_kfunc_list[KF_bpf_list_push_front_impl] || in fixup_kfunc_call()
22545 desc->func_id == special_kfunc_list[KF_bpf_rbtree_add_impl]) { in fixup_kfunc_call()
22551 if (desc->func_id == special_kfunc_list[KF_bpf_rbtree_add_impl]) { in fixup_kfunc_call()
22564 } else if (desc->func_id == special_kfunc_list[KF_bpf_cast_to_kern_ctx] || in fixup_kfunc_call()
22565 desc->func_id == special_kfunc_list[KF_bpf_rdonly_cast]) { in fixup_kfunc_call()