Documented in 1 files:

Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

kernel/bpf/syscall.c __bpf_prog_put() -> atomic64_dec_and_test()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &d->mutex
HALF_LOCKED2 &edev->qede_lock
HALF_LOCKED2 &mdev->state_lock
HALF_LOCKED2 &priv->state_lock
HALF_LOCKED2 &prog->aux->dst_mutex
HALF_LOCKED2 &seq->lock
HALF_LOCKED2 &st_map->lock
HALF_LOCKED2 &vsi->xdp_state_lock
HALF_LOCKED2 csk
HALF_LOCKED2 global &cgroup_mutex
HALF_LOCKED2 global &ir_raw_handler_lock
HALF_LOCKED2 global &link_mutex
HALF_LOCKED2 global &netns_bpf_mutex
HALF_LOCKED2 global &pernet_ops_rwsem
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &sockmap_mutex

kernel/bpf/syscall.c bpf_link_put() -> atomic64_dec_and_test()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &seq->lock
HALF_LOCKED2 global &bpf_preload_lock
HALF_LOCKED2 global &cgroup_mutex
HALF_LOCKED2 global &rtnl_mutex

kernel/bpf/syscall.c bpf_link_put_direct() -> atomic64_dec_and_test()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

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

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &nlk->nl_cb_mutex
HALF_LOCKED2 &prog->aux->used_maps_mutex
HALF_LOCKED2 &seq->lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &bpf_devs_lock
HALF_LOCKED2 global &update_mutex
HALF_LOCKED2 rcu_read

kernel/bpf/syscall.c bpf_map_put_uref() -> atomic64_dec_and_test()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &sockmap_mutex

kernel/bpf/token.c bpf_token_put() -> atomic64_dec_and_test()

Type Parameter Key Value
PARAM_VALUE 0 v 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING