Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

net/mptcp/protocol.c mptcp_pm_close_subflow() -> __mptcp_pm_close_subflow()

Type Parameter Key Value
PARAM_VALUE 0 msk 4096-ptr_max
PARAM_VALUE 0 msk->__sk_common.skc_state 1
PARAM_VALUE 0 msk->allow_subflows 0
PARAM_VALUE 0 msk->fallback_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 msk->join_list.prev 4096-ptr_max
PARAM_VALUE 0 msk->join_list.prev->next 4096-ptr_max
PARAM_VALUE 0 msk->join_list.prev->next->next 4096-ptr_max
PARAM_VALUE 0 msk->pm.lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 msk->sk_lock.owned 0
PARAM_VALUE 0 msk->sk_lock.slock.rlock.dep_map->name 0-255
CAPPED_DATA 0 msk->__sk_common.skc_net.net 1
DATA_SOURCE 0 msk $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 msk unit_byte
LOCK2 bh
LOCK2 0 &msk->pm.lock
TYPE_LOCK (struct mptcp_pm_data)->lock

net/mptcp/pm.c mptcp_pm_subflow_check_next() -> __mptcp_pm_close_subflow()

Type Parameter Key Value
PARAM_VALUE 0 msk 4096-ptr_max
PARAM_VALUE 0 msk->pm.lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 msk->pm.pm_type 0,2-255
DATA_SOURCE 0 msk $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 msk unit_byte
LOCK2 &pm->lock
LOCK2 bh
HALF_LOCKED2 sk
TYPE_LOCK (struct mptcp_pm_data)->lock

net/mptcp/subflow.c mptcp_pm_close_subflow() -> __mptcp_pm_close_subflow()

Type Parameter Key Value
PARAM_VALUE 0 msk 4096-ptr_max
PARAM_VALUE 0 msk->conn_list.prev 4096-ptr_max
PARAM_VALUE 0 msk->conn_list.prev->next 4096-ptr_max
PARAM_VALUE 0 msk->conn_list.prev->next->next 4096-ptr_max
PARAM_VALUE 0 msk->pm.lock.rlock.dep_map->name 0-255
DATA_SOURCE 0 msk $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 bh
LOCK2 0 &msk->pm.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 sk
TYPE_LOCK (struct mptcp_pm_data)->lock