Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

net/mptcp/protocol.c __mptcp_move_skbs_from_subflow() -> mptcp_subflow_data_available()

Type Parameter Key Value
PARAM_VALUE 0 sk 4096-ptr_max
PARAM_VALUE 0 sk->__sk_common.skc_net.net->mctp.bind_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 sk->__sk_common.skc_prot->h.smc_hash->lock->owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 sk->__sk_common.skc_prot->h.smc_hash->lock.owner (-1)
PARAM_VALUE 0 sk->__sk_common.skc_prot->h.smc_hash->lock.owner_cpu 4294967295
PARAM_VALUE 0 sk->__sk_common.skc_prot->h.smc_hash->lock.raw_lock.cnts.counter 0-s32max
PARAM_VALUE 0 sk->listener->ns_tracker->alloc_stack_handle 0-4294967295
PARAM_VALUE 0 sk->listener->ns_tracker->dead 0-1
PARAM_VALUE 0 sk->listener->ns_tracker->free_stack_handle 0-4294967295
PARAM_VALUE 0 sk->listener->sk_bpf_storage->owner_refcnt.refs.counter s32min-s32max
PARAM_VALUE 0 sk->listener->sk_lock.owned 1
PARAM_VALUE 0 sk->ns_tracker->alloc_stack_handle 0-4294967295
PARAM_VALUE 0 sk->ns_tracker->dead 0-1
PARAM_VALUE 0 sk->ns_tracker->free_stack_handle 0-4294967295
PARAM_VALUE 0 sk->sk_error_queue.prev->next->next 4096-ptr_max
PARAM_VALUE 0 sk->sk_lock.wq.head.prev->next 4096-ptr_max
PARAM_VALUE 0 sk->sk_lock.wq.head.prev->next->next 4096-ptr_max
PARAM_VALUE 0 sk->sk_write_queue.prev->next 4096-ptr_max
PARAM_VALUE 0 sk->sk_write_queue.prev->next->next 4096-ptr_max
CAPPED_DATA 0 sk 1
CAPPED_DATA 0 &sk->sk_receive_queue 1
DATA_SOURCE 0 sk $1
PREEMPT_ADD
LOCK2 &sk->sk_lock.slock
LOCK2 bh
TYPE_LOCK (struct socket_lock_t)->slock

net/mptcp/subflow.c subflow_data_ready() -> mptcp_subflow_data_available()

Type Parameter Key Value
PARAM_VALUE 0 sk 4096-ptr_max
DATA_SOURCE 0 sk $0

net/mptcp/subflow.c subflow_state_change() -> mptcp_subflow_data_available()

Type Parameter Key Value
PARAM_VALUE 0 sk 4096-ptr_max
CAPPED_DATA 0 sk->sk_wq 1
DATA_SOURCE 0 sk $0