Lines Matching refs:c

93 	struct l2cap_chan *c;  in __l2cap_get_chan_by_dcid()  local
95 list_for_each_entry(c, &conn->chan_l, list) { in __l2cap_get_chan_by_dcid()
96 if (c->dcid == cid) in __l2cap_get_chan_by_dcid()
97 return c; in __l2cap_get_chan_by_dcid()
105 struct l2cap_chan *c; in __l2cap_get_chan_by_scid() local
107 list_for_each_entry(c, &conn->chan_l, list) { in __l2cap_get_chan_by_scid()
108 if (c->scid == cid) in __l2cap_get_chan_by_scid()
109 return c; in __l2cap_get_chan_by_scid()
120 struct l2cap_chan *c; in l2cap_get_chan_by_scid() local
122 c = __l2cap_get_chan_by_scid(conn, cid); in l2cap_get_chan_by_scid()
123 if (c) { in l2cap_get_chan_by_scid()
125 c = l2cap_chan_hold_unless_zero(c); in l2cap_get_chan_by_scid()
126 if (c) in l2cap_get_chan_by_scid()
127 l2cap_chan_lock(c); in l2cap_get_chan_by_scid()
130 return c; in l2cap_get_chan_by_scid()
139 struct l2cap_chan *c; in l2cap_get_chan_by_dcid() local
141 c = __l2cap_get_chan_by_dcid(conn, cid); in l2cap_get_chan_by_dcid()
142 if (c) { in l2cap_get_chan_by_dcid()
144 c = l2cap_chan_hold_unless_zero(c); in l2cap_get_chan_by_dcid()
145 if (c) in l2cap_get_chan_by_dcid()
146 l2cap_chan_lock(c); in l2cap_get_chan_by_dcid()
149 return c; in l2cap_get_chan_by_dcid()
155 struct l2cap_chan *c; in __l2cap_get_chan_by_ident() local
157 list_for_each_entry(c, &conn->chan_l, list) { in __l2cap_get_chan_by_ident()
158 if (c->ident == ident) in __l2cap_get_chan_by_ident()
159 return c; in __l2cap_get_chan_by_ident()
167 struct l2cap_chan *c; in __l2cap_global_chan_by_addr() local
169 list_for_each_entry(c, &chan_list, global_l) { in __l2cap_global_chan_by_addr()
170 if (src_type == BDADDR_BREDR && c->src_type != BDADDR_BREDR) in __l2cap_global_chan_by_addr()
173 if (src_type != BDADDR_BREDR && c->src_type == BDADDR_BREDR) in __l2cap_global_chan_by_addr()
176 if (c->sport == psm && !bacmp(&c->src, src)) in __l2cap_global_chan_by_addr()
177 return c; in __l2cap_global_chan_by_addr()
494 void l2cap_chan_hold(struct l2cap_chan *c) in l2cap_chan_hold() argument
496 BT_DBG("chan %p orig refcnt %u", c, kref_read(&c->kref)); in l2cap_chan_hold()
498 kref_get(&c->kref); in l2cap_chan_hold()
501 struct l2cap_chan *l2cap_chan_hold_unless_zero(struct l2cap_chan *c) in l2cap_chan_hold_unless_zero() argument
503 BT_DBG("chan %p orig refcnt %u", c, kref_read(&c->kref)); in l2cap_chan_hold_unless_zero()
505 if (!kref_get_unless_zero(&c->kref)) in l2cap_chan_hold_unless_zero()
508 return c; in l2cap_chan_hold_unless_zero()
511 void l2cap_chan_put(struct l2cap_chan *c) in l2cap_chan_put() argument
513 BT_DBG("chan %p orig refcnt %u", c, kref_read(&c->kref)); in l2cap_chan_put()
515 kref_put(&c->kref, l2cap_chan_destroy); in l2cap_chan_put()
1837 struct l2cap_chan *c, *tmp, *c1 = NULL; in l2cap_global_chan_by_psm() local
1841 list_for_each_entry_safe(c, tmp, &chan_list, global_l) { in l2cap_global_chan_by_psm()
1842 if (state && c->state != state) in l2cap_global_chan_by_psm()
1845 if (link_type == ACL_LINK && c->src_type != BDADDR_BREDR) in l2cap_global_chan_by_psm()
1848 if (link_type == LE_LINK && c->src_type == BDADDR_BREDR) in l2cap_global_chan_by_psm()
1851 if (c->chan_type != L2CAP_CHAN_FIXED && c->psm == psm) { in l2cap_global_chan_by_psm()
1856 src_match = !bacmp(&c->src, src); in l2cap_global_chan_by_psm()
1857 dst_match = !bacmp(&c->dst, dst); in l2cap_global_chan_by_psm()
1859 if (!l2cap_chan_hold_unless_zero(c)) in l2cap_global_chan_by_psm()
1863 return c; in l2cap_global_chan_by_psm()
1867 src_any = !bacmp(&c->src, BDADDR_ANY); in l2cap_global_chan_by_psm()
1868 dst_any = !bacmp(&c->dst, BDADDR_ANY); in l2cap_global_chan_by_psm()
1871 c1 = c; in l2cap_global_chan_by_psm()
7184 struct l2cap_chan *c; in l2cap_connect_ind() local
7190 list_for_each_entry(c, &chan_list, global_l) { in l2cap_connect_ind()
7191 if (c->state != BT_LISTEN) in l2cap_connect_ind()
7194 if (!bacmp(&c->src, &hdev->bdaddr)) { in l2cap_connect_ind()
7196 if (test_bit(FLAG_ROLE_SWITCH, &c->flags)) in l2cap_connect_ind()
7199 } else if (!bacmp(&c->src, BDADDR_ANY)) { in l2cap_connect_ind()
7201 if (test_bit(FLAG_ROLE_SWITCH, &c->flags)) in l2cap_connect_ind()
7214 static struct l2cap_chan *l2cap_global_fixed_chan(struct l2cap_chan *c, in l2cap_global_fixed_chan() argument
7221 if (c) in l2cap_global_fixed_chan()
7222 c = list_next_entry(c, global_l); in l2cap_global_fixed_chan()
7224 c = list_entry(chan_list.next, typeof(*c), global_l); in l2cap_global_fixed_chan()
7226 list_for_each_entry_from(c, &chan_list, global_l) { in l2cap_global_fixed_chan()
7227 if (c->chan_type != L2CAP_CHAN_FIXED) in l2cap_global_fixed_chan()
7229 if (c->state != BT_LISTEN) in l2cap_global_fixed_chan()
7231 if (bacmp(&c->src, &hcon->src) && bacmp(&c->src, BDADDR_ANY)) in l2cap_global_fixed_chan()
7233 if (src_type != c->src_type) in l2cap_global_fixed_chan()
7236 c = l2cap_chan_hold_unless_zero(c); in l2cap_global_fixed_chan()
7238 return c; in l2cap_global_fixed_chan()
7499 struct l2cap_conn *l2cap_conn_hold_unless_zero(struct l2cap_conn *c) in l2cap_conn_hold_unless_zero() argument
7501 if (!c) in l2cap_conn_hold_unless_zero()
7504 BT_DBG("conn %p orig refcnt %u", c, kref_read(&c->ref)); in l2cap_conn_hold_unless_zero()
7506 if (!kref_get_unless_zero(&c->ref)) in l2cap_conn_hold_unless_zero()
7509 return c; in l2cap_conn_hold_unless_zero()
7656 struct l2cap_chan *c; in l2cap_debugfs_show() local
7660 list_for_each_entry(c, &chan_list, global_l) { in l2cap_debugfs_show()
7662 &c->src, c->src_type, &c->dst, c->dst_type, in l2cap_debugfs_show()
7663 c->state, __le16_to_cpu(c->psm), in l2cap_debugfs_show()
7664 c->scid, c->dcid, c->imtu, c->omtu, in l2cap_debugfs_show()
7665 c->sec_level, c->mode); in l2cap_debugfs_show()