Defined in 2 files as a function:
- net/mptcp/protocol.h, line 643 (as a function)
- tools/testing/selftests/bpf/progs/mptcp_bpf.h, line 37 (as a function)
Referenced in 9 files:
- include/trace/events/mptcp.h, line 50
- net/mptcp/pm.c
- net/mptcp/pm_kernel.c
- net/mptcp/pm_userspace.c, line 452
- net/mptcp/protocol.c
- net/mptcp/protocol.h
- net/mptcp/sockopt.c
- net/mptcp/subflow.c, line 1704
- tools/testing/selftests/bpf/progs/mptcp_subflow.c
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 |