Lines Matching full:psm
188 static struct l2cap_chan *__l2cap_global_chan_by_addr(__le16 psm, bdaddr_t *src, in __l2cap_global_chan_by_addr() argument
200 if (c->sport == psm && !bacmp(&c->src, src)) in __l2cap_global_chan_by_addr()
206 int l2cap_add_psm(struct l2cap_chan *chan, bdaddr_t *src, __le16 psm) in l2cap_add_psm() argument
212 if (psm && __l2cap_global_chan_by_addr(psm, src, chan->src_type)) { in l2cap_add_psm()
217 if (psm) { in l2cap_add_psm()
218 chan->psm = psm; in l2cap_add_psm()
219 chan->sport = psm; in l2cap_add_psm()
238 chan->psm = cpu_to_le16(p); in l2cap_add_psm()
585 BT_DBG("conn %p, psm 0x%2.2x, dcid 0x%4.4x", conn, in __l2cap_chan_add()
586 __le16_to_cpu(chan->psm), chan->dcid); in __l2cap_chan_add()
881 if (chan->psm == cpu_to_le16(L2CAP_PSM_3DSP)) { in l2cap_get_auth_type()
892 if (chan->psm == cpu_to_le16(L2CAP_PSM_SDP)) { in l2cap_get_auth_type()
1280 req.psm = chan->psm; in l2cap_send_conn_req()
1293 req.psm = chan->psm; in l2cap_send_create_chan_req()
1399 req.psm = chan->psm; in l2cap_le_connect()
1434 /* Only add deferred channels with the same PID/PSM */ in l2cap_ecred_defer_connect()
1435 if (conn->pid != pid || chan->psm != conn->chan->psm || chan->ident || in l2cap_ecred_defer_connect()
1467 data.pdu.req.psm = chan->psm; in l2cap_ecred_connect()
1493 if (!chan->psm) { in l2cap_le_start()
1967 /* Find socket with psm and source / destination bdaddr.
1970 static struct l2cap_chan *l2cap_global_chan_by_psm(int state, __le16 psm, in l2cap_global_chan_by_psm() argument
1989 if (c->chan_type != L2CAP_CHAN_FIXED && c->psm == psm) { in l2cap_global_chan_by_psm()
2397 BT_DBG("chan %p psm 0x%2.2x len %zu", chan, in l2cap_create_connless_pdu()
2398 __le16_to_cpu(chan->psm), len); in l2cap_create_connless_pdu()
2411 put_unaligned(chan->psm, (__le16 *) skb_put(skb, L2CAP_PSMLEN_SIZE)); in l2cap_create_connless_pdu()
4139 __le16 psm = req->psm; in l2cap_connect() local
4141 BT_DBG("psm 0x%2.2x scid 0x%4.4x", __le16_to_cpu(psm), scid); in l2cap_connect()
4143 /* Check if we have socket listening on psm */ in l2cap_connect()
4144 pchan = l2cap_global_chan_by_psm(BT_LISTEN, psm, &conn->hcon->src, in l2cap_connect()
4155 if (psm != cpu_to_le16(L2CAP_PSM_SDP) && in l2cap_connect()
4191 chan->psm = psm; in l2cap_connect()
4852 u16 psm, scid; in l2cap_create_channel_req() local
4860 psm = le16_to_cpu(req->psm); in l2cap_create_channel_req()
4863 BT_DBG("psm 0x%2.2x, scid 0x%4.4x, amp_id %d", psm, scid, req->amp_id); in l2cap_create_channel_req()
5820 __le16 psm; in l2cap_le_connect_req() local
5829 psm = req->psm; in l2cap_le_connect_req()
5836 BT_DBG("psm 0x%2.2x scid 0x%4.4x mtu %u mps %u", __le16_to_cpu(psm), in l2cap_le_connect_req()
5846 if (!psm || __le16_to_cpu(psm) > L2CAP_PSM_LE_DYN_END) { in l2cap_le_connect_req()
5852 /* Check if we have socket listening on psm */ in l2cap_le_connect_req()
5853 pchan = l2cap_global_chan_by_psm(BT_LISTEN, psm, &conn->hcon->src, in l2cap_le_connect_req()
5895 chan->psm = psm; in l2cap_le_connect_req()
6009 __le16 psm; in l2cap_ecred_conn_req() local
6038 psm = req->psm; in l2cap_ecred_conn_req()
6047 if (!psm || __le16_to_cpu(psm) > L2CAP_PSM_LE_DYN_END) { in l2cap_ecred_conn_req()
6052 BT_DBG("psm 0x%2.2x mtu %u mps %u", __le16_to_cpu(psm), mtu, mps); in l2cap_ecred_conn_req()
6056 /* Check if we have socket listening on psm */ in l2cap_ecred_conn_req()
6057 pchan = l2cap_global_chan_by_psm(BT_LISTEN, psm, &conn->hcon->src, in l2cap_ecred_conn_req()
6105 chan->psm = psm; in l2cap_ecred_conn_req()
7745 static void l2cap_conless_channel(struct l2cap_conn *conn, __le16 psm, in l2cap_conless_channel() argument
7754 chan = l2cap_global_chan_by_psm(0, psm, &hcon->src, &hcon->dst, in l2cap_conless_channel()
7767 /* Store remote BD_ADDR and PSM for msg_name */ in l2cap_conless_channel()
7769 bt_cb(skb)->l2cap.psm = psm; in l2cap_conless_channel()
7787 __le16 psm; in l2cap_recv_frame() local
7822 psm = get_unaligned((__le16 *) skb->data); in l2cap_recv_frame()
7824 l2cap_conless_channel(conn, psm, skb); in l2cap_recv_frame()
7916 static bool is_valid_psm(u16 psm, u8 dst_type) in is_valid_psm() argument
7918 if (!psm) in is_valid_psm()
7922 return (psm <= 0x00ff); in is_valid_psm()
7924 /* PSM must be odd and lsb of upper byte must be 0 */ in is_valid_psm()
7925 return ((psm & 0x0101) == 0x0001); in is_valid_psm()
7947 /* Only count deferred channels with the same PID/PSM */ in l2cap_chan_by_pid()
7948 if (d->pid != pid || chan->psm != d->chan->psm || chan->ident || in l2cap_chan_by_pid()
7955 int l2cap_chan_connect(struct l2cap_chan *chan, __le16 psm, u16 cid, in l2cap_chan_connect() argument
7963 BT_DBG("%pMR -> %pMR (type %u) psm 0x%4.4x mode 0x%2.2x", &chan->src, in l2cap_chan_connect()
7964 dst, dst_type, __le16_to_cpu(psm), chan->mode); in l2cap_chan_connect()
7972 if (!is_valid_psm(__le16_to_cpu(psm), dst_type) && !cid && in l2cap_chan_connect()
7978 if (chan->chan_type == L2CAP_CHAN_CONN_ORIENTED && !psm) { in l2cap_chan_connect()
8032 /* Set destination address and psm */ in l2cap_chan_connect()
8036 chan->psm = psm; in l2cap_chan_connect()
8619 c->state, __le16_to_cpu(c->psm), in l2cap_debugfs_show()