Defined in 1 files as a function:

Referenced in 6 files:

Smatch caller information:

net/bluetooth/hidp/core.c hidp_connection_add() -> l2cap_chan_lock()

Type Parameter Key Value
CAPABLE 0 12
NOCHECK_CALL

net/bluetooth/6lowpan.c bt_6lowpan_disconnect() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
CAPPED_DATA 0 chan->conn 1
NOCHECK_CALL

net/bluetooth/6lowpan.c bt_6lowpan_exit() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
NOCHECK_CALL

net/bluetooth/6lowpan.c disconnect_all_peers() -> l2cap_chan_lock()

Type Parameter Key Value
NOCHECK_CALL
LOCK2 &attr->mutex
TYPE_LOCK (struct simple_attr)->mutex

net/bluetooth/6lowpan.c do_enable_set() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
NOCHECK_CALL
LOCK2 &attr->mutex
LOCK2 global &set_lock
TYPE_LOCK (struct simple_attr)->mutex

net/bluetooth/6lowpan.c lowpan_control_write() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
NOCHECK_CALL
LOCK2 global &set_lock

net/bluetooth/l2cap_sock.c l2cap_sock_alloc_skb_cb() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->conn 4096-ptr_max
PARAM_VALUE 0 chan->data 4096-ptr_max
PARAM_VALUE 0 chan->lock.dep_map->name 0-255
PARAM_VALUE 0 chan->lock.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 chan->lock.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 chan->lock.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 chan->lock.first_waiter->task->blocked_lock.raw_lock.val.counter s32min-s32max
PARAM_VALUE 0 chan->lock.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 chan->ops 4096-ptr_max
BUF_SIZE 0 chan->data (-1)-s32max
DATA_SOURCE 0 chan $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/bluetooth/l2cap_sock.c l2cap_sock_cleanup_listen() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 parent

net/bluetooth/l2cap_sock.c l2cap_sock_getsockopt() -> l2cap_chan_lock()

Type Parameter Key Value
RX_PATH
NOCHECK_CALL

net/bluetooth/l2cap_sock.c l2cap_sock_getsockopt_old() -> l2cap_chan_lock()

Type Parameter Key Value
RX_PATH
NOCHECK_CALL

net/bluetooth/l2cap_sock.c l2cap_sock_release() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem

net/bluetooth/l2cap_sock.c l2cap_sock_sendmsg() -> l2cap_chan_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &vq->mutex
HALF_LOCKED2 sk

net/bluetooth/l2cap_sock.c l2cap_sock_setsockopt() -> l2cap_chan_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &smc->clcsock_release_lock

net/bluetooth/l2cap_sock.c l2cap_sock_setsockopt_old() -> l2cap_chan_lock()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/bluetooth/l2cap_sock.c l2cap_sock_shutdown() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->kref.refcount.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 chan->ops->teardown 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

net/bluetooth/l2cap_sock.c l2cap_sock_shutdown() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->conn 0,4096-ptr_max
PARAM_VALUE 0 chan->conn->ref.refcount.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 chan->kref.refcount.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 chan->lock.dep_map->name 0-255
PARAM_VALUE 0 chan->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 chan->lock.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 chan->lock.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 chan->lock.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 chan->lock.first_waiter->task->blocked_lock.raw_lock.val.counter s32min-s32max
PARAM_VALUE 0 chan->lock.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 chan->ops->teardown 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &conn->lock

net/bluetooth/smp.c smp_cancel_and_remove_pairing() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 1-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &hdev->lock
LOCK2 global &mgmt_chan_list_lock
LOCK2 sk
HALF_LOCKED2 &vq->mutex
TYPE_LOCK (struct hci_dev)->lock

net/bluetooth/smp.c smp_conn_security() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 1-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &chan->lock
HALF_LOCKED2 &conn->lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &hci_cb_list_lock
HALF_LOCKED2 sk

net/bluetooth/smp.c smp_user_confirm_reply() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 1-u64max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &hdev->lock
LOCK2 global &mgmt_chan_list_lock
HALF_LOCKED2 &vq->mutex
HALF_LOCKED2 sk
TYPE_LOCK (struct hci_dev)->lock

net/bluetooth/l2cap_core.c l2cap_ack_timeout() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

net/bluetooth/l2cap_core.c l2cap_chan_connect() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->dcid 0
PARAM_VALUE 0 chan->dst_type 0-2
PARAM_VALUE 0 chan->mode 0,3-4,128-129
PARAM_VALUE 0 chan->state 2-3
BUF_SIZE 0 chan (-1),1432
BUF_SIZE 0 chan (-1),1432
BUF_SIZE 0 chan->ops (-1),120
DATA_SOURCE 0 chan $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &conn->lock
LOCK2 &hdev->lock
TYPE_LOCK (struct hci_dev)->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_chan_timeout() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->conn->lock.dep_map->name 0-255
PARAM_VALUE 0 chan->conn->lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 chan->conn->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 chan->conn->lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 chan->conn->lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 chan->conn->lock.wait_lock.owner (-1)
PARAM_VALUE 0 chan->conn->lock.wait_lock.owner_cpu u32max
NOCHECK_CALL
LOCK2 &conn->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_conless_channel() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->chan_type 0-3,5-255
PARAM_VALUE 0 chan->kref.refcount.refs.counter (-1073741824),0-s32max
DATA_SOURCE 0 chan r l2cap_global_chan_by_psm
RX_PATH
NOCHECK_CALL
LOCK2 &conn->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_conn_del() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->ops->teardown 4096-ptr_max
CAPPED_DATA 0 &chan->list 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &conn->lock
LOCK2 global &hci_cb_list_lock
HALF_LOCKED2 &hdev->lock
HALF_LOCKED2 &hdev->req_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_conn_ready() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
CAPPED_DATA 0 &chan->list 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &conn->lock
LOCK2 global &hci_cb_list_lock
HALF_LOCKED2 &hdev->lock
HALF_LOCKED2 &hdev->req_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_conn_start() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->ops->state_change 4096-ptr_max
CAPPED_DATA 0 &chan->list 1
RX_PATH
NOCHECK_CALL
LOCK2 &conn->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_conn_update_id_addr() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
CAPPED_DATA 0 &chan->list 1
NOCHECK_CALL
LOCK2 &conn->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_connect() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->chan_type 0-3,5-255
PARAM_VALUE 0 chan->kref.refcount.refs.counter (-1073741824),0-s32max
DATA_SOURCE 0 chan r l2cap_global_chan_by_psm
RX_PATH
NOCHECK_CALL
LOCK2 &conn->lock
LOCK2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_connect_cfm() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->chan_type 4
PARAM_VALUE 0 chan->kref.refcount.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 chan->ops->alloc_skb 697403281612550144,1428439502886932480,3829141406643666944,4747775035852767232
PARAM_VALUE 0 chan->ops->close 213534670060187648,5426308600317853696,8941342193426427904
PARAM_VALUE 0 chan->ops->defer 1471107293441404928,3353376515601281024,8564691276438745088
PARAM_VALUE 0 chan->ops->filter 0,5601450832164487168
PARAM_VALUE 0 chan->ops->get_peer_pid 0,7806658739735814144
PARAM_VALUE 0 chan->ops->get_sndtimeo 2697548582813421568,4173136885396430848,8824681775271051264
PARAM_VALUE 0 chan->ops->name 367564300844425216,3621607505566339072,3827038824283914240,9192042632466305024
PARAM_VALUE 0 chan->ops->new_connection 101309089589129216,1349125343832133632,7594089158128291840,9116300513561088000
PARAM_VALUE 0 chan->ops->ready 1936570842419531776,3141042949788332032,4413953799751630848,8863630754790494208
PARAM_VALUE 0 chan->ops->recv 2187815225111711744,7374705446746943488,8578246076673925120,8652859653051080704
PARAM_VALUE 0 chan->ops->resume 233276029245161472,4654052775929847808,5170076218034978816,5602426340623007744
PARAM_VALUE 0 chan->ops->set_shutdown 3641466375809654784,4929020601093369856,8570201482808676352
PARAM_VALUE 0 chan->ops->state_change 3997558339430535168,8693889062415364096,8999691986912878592
PARAM_VALUE 0 chan->ops->suspend 2882397264801574912,4450364550360055808,7055267220821704704
PARAM_VALUE 0 chan->ops->teardown 924184129156304896,1942840155918454784,5557135947086708736,5924960628137046016
PARAM_VALUE 0 chan->src_type 0-2
PARAM_VALUE 0 chan->state 4
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &hci_cb_list_lock
HALF_LOCKED2 &hdev->lock
HALF_LOCKED2 &hdev->req_lock
HALF_LOCKED2 &pool->lock

net/bluetooth/l2cap_core.c l2cap_connect_create_rsp() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->ident 1-255
PARAM_VALUE 0 chan->kref.refcount.refs.counter (-1073741824),0-s32max
PARAM_COMPARE 0 chan == $0
NOSPEC 0 chan->ident
RX_PATH
NOCHECK_CALL
USER_DATA 0 chan->ident 1-255[c]
LOCK2 &conn->lock
LOCK2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_ecred_conn_req() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->chan_type 0-3,5-255
PARAM_VALUE 0 chan->kref.refcount.refs.counter (-1073741824),0-s32max
DATA_SOURCE 0 chan r l2cap_global_chan_by_psm
RX_PATH
NOCHECK_CALL
LOCK2 &conn->lock
LOCK2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_ecred_conn_rsp() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->ident 1-255
PARAM_VALUE 0 chan->mode 129
PARAM_VALUE 0 chan->ops->teardown 4096-ptr_max
PARAM_VALUE 0 chan->state 0,2-255
CAPPED_DATA 0 chan->ident 1
CAPPED_DATA 0 &chan->list 1
RX_PATH
NOCHECK_CALL
LOCK2 &conn->lock
LOCK2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_ecred_conn_rsp() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->mode 129
CAPPED_DATA 0 chan->dcid 1
DATA_SOURCE 0 chan r __l2cap_get_chan_by_dcid
RX_PATH
NOCHECK_CALL
LOCK2 &conn->lock
LOCK2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_ecred_reconf_rsp() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->ident 1-255
PARAM_VALUE 0 chan->kref.refcount.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 chan->ops->teardown 4096-ptr_max
CAPPED_DATA 0 chan->ident 1
CAPPED_DATA 0 &chan->list 1
RX_PATH
NOCHECK_CALL
LOCK2 &conn->lock
LOCK2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_get_chan_by_dcid() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->kref.refcount.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 chan->ops->teardown 4096-ptr_max
PARAM_COMPARE 0 chan == $0
RX_PATH
NOCHECK_CALL
LOCK2 &conn->lock
LOCK2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_get_chan_by_scid() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->kref.refcount.refs.counter (-1073741824),0-s32max
PARAM_VALUE 0 chan->ops->teardown 4096-ptr_max
PARAM_COMPARE 0 chan == $0
RX_PATH
NOCHECK_CALL
LOCK2 &conn->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_le_command_rej() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->ident 1-255
PARAM_VALUE 0 chan->kref.refcount.refs.counter (-1073741824),0-s32max
PARAM_COMPARE 0 chan == $0
NOSPEC 0 chan->ident
RX_PATH
NOCHECK_CALL
USER_DATA 0 chan->ident 1-255[c]
LOCK2 &conn->lock
LOCK2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_le_connect_req() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->chan_type 0-3,5-255
PARAM_VALUE 0 chan->kref.refcount.refs.counter (-1073741824),0-s32max
DATA_SOURCE 0 chan r l2cap_global_chan_by_psm
RX_PATH
NOCHECK_CALL
LOCK2 &conn->lock
LOCK2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_le_connect_rsp() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->ident 1-255
PARAM_VALUE 0 chan->kref.refcount.refs.counter (-1073741824),0-s32max
PARAM_COMPARE 0 chan == $0
NOSPEC 0 chan->ident
RX_PATH
NOCHECK_CALL
USER_DATA 0 chan->ident 1-255[c]
LOCK2 &conn->lock
LOCK2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_monitor_timeout() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

net/bluetooth/l2cap_core.c l2cap_retrans_timeout() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

net/bluetooth/l2cap_core.c l2cap_security_cfm() -> l2cap_chan_lock()

Type Parameter Key Value
PARAM_VALUE 0 chan 4096-ptr_max
PARAM_VALUE 0 chan->ops->state_change 4096-ptr_max
CAPPED_DATA 0 &chan->list 1
RX_PATH
NOCHECK_CALL
LOCK2 &conn->lock
LOCK2 &hdev->lock
LOCK2 &pool->lock
LOCK2 global &hci_cb_list_lock
TYPE_LOCK (struct hci_dev)->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/bnep/core.c bnep_get_conn() -> l2cap_chan_lock()

Type Parameter Key Value
CAPABLE 0 12
NOCHECK_CALL
LOCK2 global &bnep_session_sem