Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

net/sctp/socket.c sctp_for_each_endpoint() -> sctp_endpoint_hold()

Type Parameter Key Value
PARAM_VALUE 0 ep 4096-ptr_max
CAPPED_DATA 0 ep->base.sk->__sk_common.skc_net.net 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &head->lock
LOCK2 bh
HALF_LOCKED2 &nlk->nl_cb_mutex
TYPE_LOCK (struct netlink_sock)->nl_cb_mutex
TYPE_LOCK (struct sctp_hashbucket)->lock

net/sctp/socket.c sctp_transport_lookup_process() -> sctp_endpoint_hold()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex

net/sctp/socket.c sctp_transport_traverse_process() -> sctp_endpoint_hold()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &nlk->nl_cb_mutex
TYPE_LOCK (struct netlink_sock)->nl_cb_mutex

net/sctp/input.c __sctp_rcv_lookup_endpoint() -> sctp_endpoint_hold()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &head->lock
TYPE_LOCK (struct sctp_hashbucket)->lock

net/sctp/input.c sctp_add_backlog() -> sctp_endpoint_hold()

Type Parameter Key Value
PARAM_VALUE 0 ep 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &sk->sk_lock.slock
TYPE_LOCK (struct socket_lock_t)->slock

net/sctp/associola.c sctp_assoc_migrate() -> sctp_endpoint_hold()

Type Parameter Key Value
PARAM_VALUE 0 ep->base.sk->__sk_common.skc_bind_node->next->pprev 1-u64max
RX_PATH
NOCHECK_CALL
LOCK2 newsk
LOCK2 oldsk

net/sctp/associola.c sctp_association_init() -> sctp_endpoint_hold()

Type Parameter Key Value
PARAM_VALUE 0 ep 4096-ptr_max
DATA_SOURCE 0 ep $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 sk