Lines Matching full:psm

164 static struct l2cap_chan *__l2cap_global_chan_by_addr(__le16 psm, bdaddr_t *src,  in __l2cap_global_chan_by_addr()  argument
176 if (c->sport == psm && !bacmp(&c->src, src)) in __l2cap_global_chan_by_addr()
182 int l2cap_add_psm(struct l2cap_chan *chan, bdaddr_t *src, __le16 psm) in l2cap_add_psm() argument
188 if (psm && __l2cap_global_chan_by_addr(psm, src, chan->src_type)) { in l2cap_add_psm()
193 if (psm) { in l2cap_add_psm()
194 chan->psm = psm; in l2cap_add_psm()
195 chan->sport = psm; in l2cap_add_psm()
214 chan->psm = cpu_to_le16(p); in l2cap_add_psm()
588 BT_DBG("conn %p, psm 0x%2.2x, dcid 0x%4.4x", conn, in __l2cap_chan_add()
589 __le16_to_cpu(chan->psm), chan->dcid); in __l2cap_chan_add()
874 if (chan->psm == cpu_to_le16(L2CAP_PSM_3DSP)) { in l2cap_get_auth_type()
885 if (chan->psm == cpu_to_le16(L2CAP_PSM_SDP)) { in l2cap_get_auth_type()
1231 req.psm = chan->psm; in l2cap_send_conn_req()
1280 req.psm = chan->psm; in l2cap_le_connect()
1315 /* Only add deferred channels with the same PID/PSM */ in l2cap_ecred_defer_connect()
1316 if (conn->pid != pid || chan->psm != conn->chan->psm || chan->ident || in l2cap_ecred_defer_connect()
1348 data.pdu.req.psm = chan->psm; in l2cap_ecred_connect()
1374 if (!chan->psm) { in l2cap_le_start()
1829 /* Find socket with psm and source / destination bdaddr.
1832 static struct l2cap_chan *l2cap_global_chan_by_psm(int state, __le16 psm, in l2cap_global_chan_by_psm() argument
1851 if (c->chan_type != L2CAP_CHAN_FIXED && c->psm == psm) { in l2cap_global_chan_by_psm()
2250 BT_DBG("chan %p psm 0x%2.2x len %zu", chan, in l2cap_create_connless_pdu()
2251 __le16_to_cpu(chan->psm), len); in l2cap_create_connless_pdu()
2264 put_unaligned(chan->psm, (__le16 *) skb_put(skb, L2CAP_PSMLEN_SIZE)); in l2cap_create_connless_pdu()
3979 __le16 psm = req->psm; in l2cap_connect() local
3981 BT_DBG("psm 0x%2.2x scid 0x%4.4x", __le16_to_cpu(psm), scid); in l2cap_connect()
3983 /* Check if we have socket listening on psm */ in l2cap_connect()
3984 pchan = l2cap_global_chan_by_psm(BT_LISTEN, psm, &conn->hcon->src, in l2cap_connect()
3994 if (psm != cpu_to_le16(L2CAP_PSM_SDP) && in l2cap_connect()
4031 chan->psm = psm; in l2cap_connect()
4828 __le16 psm; in l2cap_le_connect_req() local
4837 psm = req->psm; in l2cap_le_connect_req()
4844 BT_DBG("psm 0x%2.2x scid 0x%4.4x mtu %u mps %u", __le16_to_cpu(psm), in l2cap_le_connect_req()
4854 if (!psm || __le16_to_cpu(psm) > L2CAP_PSM_LE_DYN_END) { in l2cap_le_connect_req()
4860 /* Check if we have socket listening on psm */ in l2cap_le_connect_req()
4861 pchan = l2cap_global_chan_by_psm(BT_LISTEN, psm, &conn->hcon->src, in l2cap_le_connect_req()
4902 chan->psm = psm; in l2cap_le_connect_req()
5012 __le16 psm; in l2cap_ecred_conn_req() local
5041 psm = req->psm; in l2cap_ecred_conn_req()
5050 if (!psm || __le16_to_cpu(psm) > L2CAP_PSM_LE_DYN_END) { in l2cap_ecred_conn_req()
5055 BT_DBG("psm 0x%2.2x mtu %u mps %u", __le16_to_cpu(psm), mtu, mps); in l2cap_ecred_conn_req()
5059 /* Check if we have socket listening on psm */ in l2cap_ecred_conn_req()
5060 pchan = l2cap_global_chan_by_psm(BT_LISTEN, psm, &conn->hcon->src, in l2cap_ecred_conn_req()
5107 chan->psm = psm; in l2cap_ecred_conn_req()
6738 static void l2cap_conless_channel(struct l2cap_conn *conn, __le16 psm, in l2cap_conless_channel() argument
6747 chan = l2cap_global_chan_by_psm(0, psm, &hcon->src, &hcon->dst, in l2cap_conless_channel()
6762 /* Store remote BD_ADDR and PSM for msg_name */ in l2cap_conless_channel()
6764 bt_cb(skb)->l2cap.psm = psm; in l2cap_conless_channel()
6784 __le16 psm; in l2cap_recv_frame() local
6819 psm = get_unaligned((__le16 *) skb->data); in l2cap_recv_frame()
6821 l2cap_conless_channel(conn, psm, skb); in l2cap_recv_frame()
6902 static bool is_valid_psm(u16 psm, u8 dst_type) in is_valid_psm() argument
6904 if (!psm) in is_valid_psm()
6908 return (psm <= 0x00ff); in is_valid_psm()
6910 /* PSM must be odd and lsb of upper byte must be 0 */ in is_valid_psm()
6911 return ((psm & 0x0101) == 0x0001); in is_valid_psm()
6933 /* Only count deferred channels with the same PID/PSM */ in l2cap_chan_by_pid()
6934 if (d->pid != pid || chan->psm != d->chan->psm || chan->ident || in l2cap_chan_by_pid()
6941 int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid, in l2cap_chan_connect() argument
6949 BT_DBG("%pMR -> %pMR (type %u) psm 0x%4.4x mode 0x%2.2x", &chan->src, in l2cap_chan_connect()
6950 dst, dst_type, __le16_to_cpu(psm), chan->mode); in l2cap_chan_connect()
6958 if (!is_valid_psm(__le16_to_cpu(psm), dst_type) && !cid && in l2cap_chan_connect()
6964 if (chan->chan_type == L2CAP_CHAN_CONN_ORIENTED && !psm) { in l2cap_chan_connect()
7018 /* Set destination address and psm */ in l2cap_chan_connect()
7022 chan->psm = psm; in l2cap_chan_connect()
7639 c->state, __le16_to_cpu(c->psm), in l2cap_debugfs_show()