Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 12 files:

Smatch caller information:

kernel/bpf/arraymap.c prog_array_map_clear_deferred() -> bpf_map_put()

Type Parameter Key Value
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

net/core/bpf_sk_storage.c bpf_sk_storage_clone() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
DATA_SOURCE 0 map r bpf_map_inc_not_zero
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &newsk->sk_lock.slock
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 sk

net/core/bpf_sk_storage.c bpf_sk_storage_clone() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
DATA_SOURCE 0 map r bpf_map_inc_not_zero
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &newsk->sk_lock.slock
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 sk

net/core/bpf_sk_storage.c bpf_sk_storage_clone() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
DATA_SOURCE 0 map r bpf_map_inc_not_zero
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &newsk->sk_lock.slock
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 sk

net/core/bpf_sk_storage.c bpf_sk_storage_clone() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
DATA_SOURCE 0 map r bpf_map_inc_not_zero
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 &newsk->sk_lock.slock
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 sk

net/core/bpf_sk_storage.c bpf_sk_storage_diag_alloc() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->map_type 0-23,25-u32max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
DATA_SOURCE 0 map r bpf_map_get
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &nlk->nl_cb_mutex
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
TYPE_LOCK (struct netlink_sock)->nl_cb_mutex

net/core/bpf_sk_storage.c bpf_sk_storage_diag_alloc() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->map_type 24
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
CAPPED_DATA 0 map 1
DATA_SOURCE 0 map r bpf_map_get
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &nlk->nl_cb_mutex
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
TYPE_LOCK (struct netlink_sock)->nl_cb_mutex

net/core/bpf_sk_storage.c bpf_sk_storage_diag_free() -> bpf_map_put()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &nlk->nl_cb_mutex

kernel/bpf/syscall.c bpf_map_put_with_uref() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->ops->map_release 0,7496606770224660480
BUF_SIZE 0 map s32min-(-1),1-s32max
BUF_SIZE 0 map s32min-(-1),1-s32max
DATA_SOURCE 0 map $0
NOSPEC 0 map->map_type
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 map->btf_key_type_id 0-u32max
USER_DATA 0 map->btf_value_type_id 0-u32max
USER_DATA 0 map->btf_vmlinux_value_type_id 0-u32max
USER_DATA 0 map->map_type 1-34[c]
UNITS 0 map unit_array_size
HALF_LOCKED2 global &sockmap_mutex

kernel/bpf/syscall.c bpf_prog_bind_map() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
CAPPED_DATA 0 map 1
DATA_SOURCE 0 map r bpf_map_get
NOCHECK_CALL
LOCK2 &prog->aux->used_maps_mutex
TYPE_LOCK (struct bpf_prog_aux)->used_maps_mutex

kernel/bpf/syscall.c bpf_prog_bind_map() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
CAPPED_DATA 0 map 1
DATA_SOURCE 0 map r bpf_map_get
NOCHECK_CALL

kernel/bpf/syscall.c link_update_map() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
CAPPED_DATA 0 map 1
DATA_SOURCE 0 map r bpf_map_get
NOCHECK_CALL

kernel/bpf/syscall.c link_update_map() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->map_flags 8192-u32max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
DATA_SOURCE 0 map r bpf_map_get
NOCHECK_CALL

kernel/bpf/syscall.c prog_assoc_struct_ops() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
CAPPED_DATA 0 map 1
DATA_SOURCE 0 map r bpf_map_get
NOCHECK_CALL

net/xdp/xskmap.c xsk_map_node_free() -> bpf_map_put()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &xs->map_list_lock
HALF_LOCKED2 bh

kernel/bpf/map_iter.c bpf_map_seq_next() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 1-ptr_max
DATA_SOURCE 0 map $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &seq->lock
TYPE_LOCK (struct seq_file)->lock

kernel/bpf/map_iter.c bpf_map_seq_stop() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 1-u64max
DATA_SOURCE 0 map $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &seq->lock
TYPE_LOCK (struct seq_file)->lock

net/xdp/xsk.c xsk_delete_from_maps() -> bpf_map_put()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem

kernel/bpf/map_in_map.c bpf_map_fd_put_ptr() -> bpf_map_put()

Type Parameter Key Value
BUF_SIZE 0 map s32min-(-1),1-s32max
BUF_SIZE 0 map s32min-(-1),1-s32max
DATA_SOURCE 0 map $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

kernel/bpf/bpf_struct_ops.c bpf_prog_disassoc_struct_ops() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 1-16045481047391005598,16045481047391005600-u64max
NOCHECK_CALL
LOCK2 _T->lock

kernel/bpf/bpf_struct_ops.c bpf_struct_ops_link_create() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->map_flags 8192-u32max
BUF_SIZE 0 map s32min-(-2),1-s32max
BUF_SIZE 0 map s32min-(-2),1-s32max
DATA_SOURCE 0 map r bpf_map_get
NOCHECK_CALL

kernel/bpf/bpf_struct_ops.c bpf_struct_ops_map_delete_elem() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->ops 4096-ptr_max
PARAM_VALUE 0 map->ops->map_delete_batch 0,5247200330534285312
PARAM_VALUE 0 map->st_ops_desc 4096-ptr_max
PARAM_VALUE 0 map->st_ops_desc->st_ops 4096-ptr_max
BUF_SIZE 0 map s32min-(-1),1-s32max
BUF_SIZE 0 map s32min-(-1),1-s32max
CAPPED_DATA 0 map 1
DATA_SOURCE 0 map $0
NOCHECK_CALL
HALF_LOCKED2 rcu_read

kernel/bpf/bpf_struct_ops.c bpf_struct_ops_map_link_dealloc() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

kernel/bpf/bpf_struct_ops.c bpf_struct_ops_map_link_detach() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
NOCHECK_CALL
LOCK2 global &update_mutex

kernel/bpf/bpf_struct_ops.c bpf_struct_ops_map_link_update() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 1-u64max
CAPPED_DATA 0 map 1
NOCHECK_CALL
LOCK2 global &update_mutex

kernel/bpf/bpf_struct_ops.c bpf_struct_ops_put() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &pernet_ops_rwsem
HALF_LOCKED2 rcu_read
HALF_LOCKED2 sk

kernel/bpf/core.c __bpf_free_used_maps() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
PARAM_VALUE 0 map->ops 4096-ptr_max
PARAM_VALUE 0 map->ops->map_poke_untrack 0,693685967389519872
NOCHECK_CALL

drivers/net/ethernet/netronome/nfp/bpf/offload.c nfp_map_ptr_record() -> bpf_map_put()

Type Parameter Key Value
PARAM_VALUE 0 map 4096-ptr_max
DATA_SOURCE 0 map $2
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &prog->aux->used_maps_mutex
LOCK2 global &bpf_devs_lock
TYPE_LOCK (struct bpf_prog_aux)->used_maps_mutex

drivers/net/ethernet/netronome/nfp/bpf/offload.c nfp_map_ptrs_forget() -> bpf_map_put()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &bpf_devs_lock
HALF_LOCKED2 &prog->aux->used_maps_mutex