Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

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

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 sk

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

Type Parameter Key Value
PARAM_VALUE 0 c 4096-ptr_max
PARAM_VALUE 0 c->ident 1-255
CAPPED_DATA 0 c->ident 1
RX_PATH
USER_DATA 0 c->ident 1-255[c]
LOCK2 &conn->lock
LOCK2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

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

Type Parameter Key Value
PARAM_VALUE 0 c 4096-ptr_max
PARAM_VALUE 0 c->ident 1-255
PARAM_VALUE 0 c->ops->teardown 4096-ptr_max
CAPPED_DATA 0 c->ident 1
CAPPED_DATA 0 &c->list 1
RX_PATH
LOCK2 &conn->lock
LOCK2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

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

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

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

Type Parameter Key Value
PARAM_VALUE 0 c 4096-ptr_max
CAPPED_DATA 0 c->scid 1
DATA_SOURCE 0 c r __l2cap_get_chan_by_scid
RX_PATH
LOCK2 &conn->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_global_chan_by_psm() -> l2cap_chan_hold_unless_zero()

Type Parameter Key Value
PARAM_VALUE 0 c 4096-ptr_max
PARAM_VALUE 0 c->chan_type 0-3,5-255
CAPPED_DATA 0 c->psm 1
CAPPED_DATA 0 &c->global_l 1
RX_PATH
LOCK2 &conn->lock
LOCK2 global &chan_list_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_global_chan_by_psm() -> l2cap_chan_hold_unless_zero()

Type Parameter Key Value
PARAM_VALUE 0 c 4096-ptr_max
PARAM_VALUE 0 c->chan_type 0-3,5-255
RX_PATH
LOCK2 &conn->lock
LOCK2 global &chan_list_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

net/bluetooth/l2cap_core.c l2cap_global_fixed_chan() -> l2cap_chan_hold_unless_zero()

Type Parameter Key Value
PARAM_VALUE 0 c 4096-ptr_max
PARAM_VALUE 0 c->chan_type 4
PARAM_VALUE 0 c->ops->state_change 3997558339430535168,8693889062415364096,8999691986912878592
PARAM_VALUE 0 c->src_type 0-2
PARAM_VALUE 0 c->state 4
CAPPED_DATA 0 c->src_type 1
DATA_SOURCE 0 c $0 [m]
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &chan_list_lock
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_le_command_rej() -> l2cap_chan_hold_unless_zero()

Type Parameter Key Value
PARAM_VALUE 0 c 4096-ptr_max
PARAM_VALUE 0 c->ident 1-255
CAPPED_DATA 0 c->ident 1
DATA_SOURCE 0 c r __l2cap_get_chan_by_ident
RX_PATH
USER_DATA 0 c->ident 1-255[c]
LOCK2 &conn->lock
LOCK2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock

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

Type Parameter Key Value
PARAM_VALUE 0 c 4096-ptr_max
PARAM_VALUE 0 c->ident 1-255
CAPPED_DATA 0 c->ident 1
DATA_SOURCE 0 c r __l2cap_get_chan_by_ident
RX_PATH
USER_DATA 0 c->ident 1-255[c]
LOCK2 &conn->lock
LOCK2 &pool->lock
TYPE_LOCK (struct l2cap_conn)->lock