Defined in 2 files as a function:

Referenced in 9 files:

Smatch caller information:

net/mptcp/pm_kernel.c fill_local_laminar_endp() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PREEMPT_ADD
LOCK2 &msk->pm.lock
LOCK2 &pool->lock
LOCK2 bh
LOCK2 sk
TYPE_LOCK (struct mptcp_pm_data)->lock

net/mptcp/pm_kernel.c fill_remote_addresses_fullmesh() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &msk->pm.lock
LOCK2 bh
LOCK2 sk
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mptcp_pm_data)->lock

net/mptcp/pm_kernel.c has_subflow_daddr() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PREEMPT_ADD
LOCK2 &msk->pm.lock
LOCK2 &pool->lock
LOCK2 bh
LOCK2 sk
TYPE_LOCK (struct mptcp_pm_data)->lock

net/mptcp/sockopt.c __mptcp_setsockopt_set_val() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk

net/mptcp/sockopt.c __mptcp_setsockopt_sol_tcp_cork() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk

net/mptcp/sockopt.c __mptcp_setsockopt_sol_tcp_nodelay() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk

net/mptcp/sockopt.c mptcp_getsockopt_full_info() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
LOCK2 sk
HALF_LOCKED2 msk

net/mptcp/sockopt.c mptcp_getsockopt_subflow_addrs() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
LOCK2 sk

net/mptcp/sockopt.c mptcp_getsockopt_tcpinfo() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
LOCK2 sk

net/mptcp/sockopt.c mptcp_set_rcvlowat() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 sk
HALF_LOCKED2 sk

net/mptcp/sockopt.c mptcp_setsockopt_all_sf() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk

net/mptcp/sockopt.c mptcp_setsockopt_sol_socket_linger() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk

net/mptcp/sockopt.c mptcp_setsockopt_sol_socket_timestamping() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk

net/mptcp/sockopt.c mptcp_setsockopt_sol_socket_tstamp() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk

net/mptcp/sockopt.c mptcp_setsockopt_sol_tcp_congestion() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
NS_CAPABLE 0 12
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk

net/mptcp/sockopt.c mptcp_setsockopt_v4_set_tos() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk

net/mptcp/sockopt.c mptcp_sol_socket_sync_intval() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk

net/mptcp/protocol.c __mptcp_close() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk
HALF_LOCKED2 bh

net/mptcp/protocol.c __mptcp_close_subflow() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
CAPPED_DATA 0 &subflow->node 1
LOCK2 sk
HALF_LOCKED2 &pool->lock

net/mptcp/protocol.c __mptcp_error_report() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 bh

net/mptcp/protocol.c __mptcp_flush_join_list() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
CAPPED_DATA 0 &subflow->node 1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 sk

net/mptcp/protocol.c __mptcp_push_pending() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 sk
HALF_LOCKED2 ssk
HALF_LOCKED2 ssk

net/mptcp/protocol.c __mptcp_push_retrans() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max

net/mptcp/protocol.c __mptcp_subflow_active() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
DATA_SOURCE 0 subflow $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

net/mptcp/protocol.c __mptcp_subflow_push_pending() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 bh
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 &ssk->sk_lock.slock

net/mptcp/protocol.c __mptcp_sync_sndbuf() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 bh

net/mptcp/protocol.c mptcp_check_fastclose() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
CAPPED_DATA 0 &subflow->node 1
LOCK2 sk
HALF_LOCKED2 &pool->lock

net/mptcp/protocol.c mptcp_check_send_data_fin() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 sk

net/mptcp/protocol.c mptcp_cleanup_rbuf() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 sk

net/mptcp/protocol.c mptcp_destroy_common() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
CAPPED_DATA 0 &subflow->node 1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 sk

net/mptcp/protocol.c mptcp_do_fastclose() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
CAPPED_DATA 0 &subflow->node 1
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 sk

net/mptcp/protocol.c mptcp_enter_memory_pressure() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 sk

net/mptcp/protocol.c mptcp_graft_subflows() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk

net/mptcp/protocol.c mptcp_napi_poll() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
DATA_SOURCE 0 subflow r mptcp_subflow_delegated_next
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

net/mptcp/protocol.c mptcp_rcv_space_adjust() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 sk

net/mptcp/protocol.c mptcp_rps_record_subflows() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 newsk
HALF_LOCKED2 sk

net/mptcp/protocol.c mptcp_send_ack() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 sk

net/mptcp/protocol.c mptcp_shutdown_subflows() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 sk

net/mptcp/protocol.c mptcp_stream_accept() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
DATA_SOURCE 0 subflow r mptcp_subflow_ctx
RX_PATH
TASK_NOT_RUNNING
LOCK2 newsk

net/mptcp/protocol.c mptcp_subflow_active() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
DATA_SOURCE 0 subflow $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

net/mptcp/protocol.c mptcp_subflow_delegate() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
CAPPED_DATA 0 &subflow->delegated_node 1
DATA_SOURCE 0 subflow $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 bh
HALF_LOCKED2 &ssk->sk_lock.slock

net/mptcp/protocol.c mptcp_subflow_get_map_offset() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
DATA_SOURCE 0 subflow $0
PREEMPT_ADD
LOCK2 &sk->sk_lock.slock
LOCK2 bh
TYPE_LOCK (struct socket_lock_t)->slock

net/mptcp/protocol.c mptcp_subflow_get_retrans() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 sk

net/mptcp/protocol.c mptcp_subflow_get_send() -> mptcp_subflow_tcp_sock()

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

net/mptcp/protocol.c mptcp_subflow_set_active() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
DATA_SOURCE 0 subflow $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

net/mptcp/protocol.c mptcp_timeout_from_subflow() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
DATA_SOURCE 0 subflow $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

net/mptcp/pm_userspace.c mptcp_nl_find_ssk() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &devlink->lock
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 &dpll_lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &net_dm_mutex
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
HALF_LOCKED2 rcu_read

net/mptcp/pm.c __mptcp_pm_send_ack() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
DATA_SOURCE 0 subflow $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk

net/mptcp/pm.c __mptcp_subflow_active() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
DATA_SOURCE 0 subflow $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &msk->pm.lock
HALF_LOCKED2 bh
HALF_LOCKED2 sk

net/mptcp/pm.c mptcp_adjust_add_addr_timeout() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &msk->pm.lock
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 bh
HALF_LOCKED2 sk

net/mptcp/pm.c mptcp_pm_chk_stale() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value

net/mptcp/pm.c mptcp_pm_has_subflow_saddr() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &devlink->lock
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 &dpll_lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &net_dm_mutex
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
HALF_LOCKED2 rcu_read

net/mptcp/pm.c mptcp_pm_mp_prio_send_ack() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &devlink->lock
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 &dpll_lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &net_dm_mutex
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
HALF_LOCKED2 rcu_read

net/mptcp/pm.c mptcp_pm_rm_addr_or_subflow() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &msk->pm.lock
LOCK2 bh
LOCK2 sk
TYPE_LOCK (struct mptcp_pm_data)->lock

net/mptcp/options.c mptcp_subflow_delegate() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
CAPPED_DATA 0 subflow->snd_isn 1
CAPPED_DATA 0 &subflow->delegated_node 1
DATA_SOURCE 0 subflow $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 sk

net/mptcp/subflow.c __mptcp_subflow_connect() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
DATA_SOURCE 0 subflow r mptcp_subflow_ctx
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 sk
HALF_LOCKED2 sk

net/mptcp/subflow.c __mptcp_sync_sndbuf() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 bh

net/mptcp/subflow.c mptcp_subflow_delegate() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
PARAM_VALUE 0 subflow 4096-ptr_max
CAPPED_DATA 0 &subflow->delegated_node 1
DATA_SOURCE 0 subflow $0
PREEMPT_ADD
LOCK2 bh

net/mptcp/subflow.c mptcp_subflow_get_map_offset() -> mptcp_subflow_tcp_sock()

Type Parameter Key Value
DATA_SOURCE 0 subflow $0
PREEMPT_ADD
HALF_LOCKED2 &sk->sk_lock.slock
HALF_LOCKED2 bh