Commit fe4128e0 authored by Gustavo F. Padovan's avatar Gustavo F. Padovan

Bluetooth: Move more vars to struct l2cap_chan

In this commit, psm, scid and dcid.
Signed-off-by: default avatarGustavo F. Padovan <padovan@profusion.mobi>
parent 0c1bc5c6
...@@ -284,6 +284,9 @@ struct srej_list { ...@@ -284,6 +284,9 @@ struct srej_list {
struct l2cap_chan { struct l2cap_chan {
struct sock *sk; struct sock *sk;
__le16 psm;
__u16 dcid;
__u16 scid;
__u16 imtu; __u16 imtu;
__u16 omtu; __u16 omtu;
...@@ -382,9 +385,6 @@ struct l2cap_conn { ...@@ -382,9 +385,6 @@ struct l2cap_conn {
struct l2cap_pinfo { struct l2cap_pinfo {
struct bt_sock bt; struct bt_sock bt;
__le16 psm;
__u16 dcid;
__u16 scid;
struct l2cap_conn *conn; struct l2cap_conn *conn;
struct l2cap_chan *chan; struct l2cap_chan *chan;
...@@ -450,8 +450,8 @@ void l2cap_send_cmd(struct l2cap_conn *conn, u8 ident, u8 code, u16 len, void *d ...@@ -450,8 +450,8 @@ void l2cap_send_cmd(struct l2cap_conn *conn, u8 ident, u8 code, u16 len, void *d
void __l2cap_connect_rsp_defer(struct sock *sk); void __l2cap_connect_rsp_defer(struct sock *sk);
int __l2cap_wait_ack(struct sock *sk); int __l2cap_wait_ack(struct sock *sk);
struct sk_buff *l2cap_create_connless_pdu(struct sock *sk, struct msghdr *msg, size_t len); struct sk_buff *l2cap_create_connless_pdu(struct l2cap_chan *chan, struct msghdr *msg, size_t len);
struct sk_buff *l2cap_create_basic_pdu(struct sock *sk, struct msghdr *msg, size_t len); struct sk_buff *l2cap_create_basic_pdu(struct l2cap_chan *chan, struct msghdr *msg, size_t len);
struct sk_buff *l2cap_create_iframe_pdu(struct l2cap_chan *chan, struct msghdr *msg, size_t len, u16 control, u16 sdulen); struct sk_buff *l2cap_create_iframe_pdu(struct l2cap_chan *chan, struct msghdr *msg, size_t len, u16 control, u16 sdulen);
int l2cap_sar_segment_sdu(struct l2cap_chan *chan, struct msghdr *msg, size_t len); int l2cap_sar_segment_sdu(struct l2cap_chan *chan, struct msghdr *msg, size_t len);
void l2cap_do_send(struct l2cap_chan *chan, struct sk_buff *skb); void l2cap_do_send(struct l2cap_chan *chan, struct sk_buff *skb);
......
This diff is collapsed.
...@@ -141,7 +141,7 @@ static int l2cap_sock_bind(struct socket *sock, struct sockaddr *addr, int alen) ...@@ -141,7 +141,7 @@ static int l2cap_sock_bind(struct socket *sock, struct sockaddr *addr, int alen)
} else { } else {
/* Save source address */ /* Save source address */
bacpy(&bt_sk(sk)->src, &la.l2_bdaddr); bacpy(&bt_sk(sk)->src, &la.l2_bdaddr);
l2cap_pi(sk)->psm = la.l2_psm; chan->psm = la.l2_psm;
chan->sport = la.l2_psm; chan->sport = la.l2_psm;
sk->sk_state = BT_BOUND; sk->sk_state = BT_BOUND;
...@@ -151,7 +151,7 @@ static int l2cap_sock_bind(struct socket *sock, struct sockaddr *addr, int alen) ...@@ -151,7 +151,7 @@ static int l2cap_sock_bind(struct socket *sock, struct sockaddr *addr, int alen)
} }
if (la.l2_cid) if (la.l2_cid)
l2cap_pi(sk)->scid = la.l2_cid; chan->scid = la.l2_cid;
write_unlock_bh(&l2cap_sk_list.lock); write_unlock_bh(&l2cap_sk_list.lock);
...@@ -232,8 +232,8 @@ static int l2cap_sock_connect(struct socket *sock, struct sockaddr *addr, int al ...@@ -232,8 +232,8 @@ static int l2cap_sock_connect(struct socket *sock, struct sockaddr *addr, int al
/* Set destination address and psm */ /* Set destination address and psm */
bacpy(&bt_sk(sk)->dst, &la.l2_bdaddr); bacpy(&bt_sk(sk)->dst, &la.l2_bdaddr);
l2cap_pi(sk)->psm = la.l2_psm; chan->psm = la.l2_psm;
l2cap_pi(sk)->dcid = la.l2_cid; chan->dcid = la.l2_cid;
err = l2cap_chan_connect(l2cap_pi(sk)->chan); err = l2cap_chan_connect(l2cap_pi(sk)->chan);
if (err) if (err)
...@@ -276,7 +276,7 @@ static int l2cap_sock_listen(struct socket *sock, int backlog) ...@@ -276,7 +276,7 @@ static int l2cap_sock_listen(struct socket *sock, int backlog)
goto done; goto done;
} }
if (!l2cap_pi(sk)->psm && !l2cap_pi(sk)->scid) { if (!chan->psm && !chan->scid) {
bdaddr_t *src = &bt_sk(sk)->src; bdaddr_t *src = &bt_sk(sk)->src;
u16 psm; u16 psm;
...@@ -286,7 +286,7 @@ static int l2cap_sock_listen(struct socket *sock, int backlog) ...@@ -286,7 +286,7 @@ static int l2cap_sock_listen(struct socket *sock, int backlog)
for (psm = 0x1001; psm < 0x1100; psm += 2) for (psm = 0x1001; psm < 0x1100; psm += 2)
if (!__l2cap_get_sock_by_addr(cpu_to_le16(psm), src)) { if (!__l2cap_get_sock_by_addr(cpu_to_le16(psm), src)) {
l2cap_pi(sk)->psm = cpu_to_le16(psm); chan->psm = cpu_to_le16(psm);
chan->sport = cpu_to_le16(psm); chan->sport = cpu_to_le16(psm);
err = 0; err = 0;
break; break;
...@@ -375,13 +375,13 @@ static int l2cap_sock_getname(struct socket *sock, struct sockaddr *addr, int *l ...@@ -375,13 +375,13 @@ static int l2cap_sock_getname(struct socket *sock, struct sockaddr *addr, int *l
*len = sizeof(struct sockaddr_l2); *len = sizeof(struct sockaddr_l2);
if (peer) { if (peer) {
la->l2_psm = l2cap_pi(sk)->psm; la->l2_psm = chan->psm;
bacpy(&la->l2_bdaddr, &bt_sk(sk)->dst); bacpy(&la->l2_bdaddr, &bt_sk(sk)->dst);
la->l2_cid = cpu_to_le16(l2cap_pi(sk)->dcid); la->l2_cid = cpu_to_le16(chan->dcid);
} else { } else {
la->l2_psm = chan->sport; la->l2_psm = chan->sport;
bacpy(&la->l2_bdaddr, &bt_sk(sk)->src); bacpy(&la->l2_bdaddr, &bt_sk(sk)->src);
la->l2_cid = cpu_to_le16(l2cap_pi(sk)->scid); la->l2_cid = cpu_to_le16(chan->scid);
} }
return 0; return 0;
...@@ -737,7 +737,7 @@ static int l2cap_sock_sendmsg(struct kiocb *iocb, struct socket *sock, struct ms ...@@ -737,7 +737,7 @@ static int l2cap_sock_sendmsg(struct kiocb *iocb, struct socket *sock, struct ms
/* Connectionless channel */ /* Connectionless channel */
if (sk->sk_type == SOCK_DGRAM) { if (sk->sk_type == SOCK_DGRAM) {
skb = l2cap_create_connless_pdu(sk, msg, len); skb = l2cap_create_connless_pdu(chan, msg, len);
if (IS_ERR(skb)) { if (IS_ERR(skb)) {
err = PTR_ERR(skb); err = PTR_ERR(skb);
} else { } else {
...@@ -756,7 +756,7 @@ static int l2cap_sock_sendmsg(struct kiocb *iocb, struct socket *sock, struct ms ...@@ -756,7 +756,7 @@ static int l2cap_sock_sendmsg(struct kiocb *iocb, struct socket *sock, struct ms
} }
/* Create a basic PDU */ /* Create a basic PDU */
skb = l2cap_create_basic_pdu(sk, msg, len); skb = l2cap_create_basic_pdu(chan, msg, len);
if (IS_ERR(skb)) { if (IS_ERR(skb)) {
err = PTR_ERR(skb); err = PTR_ERR(skb);
goto done; goto done;
...@@ -911,8 +911,8 @@ void __l2cap_sock_close(struct sock *sk, int reason) ...@@ -911,8 +911,8 @@ void __l2cap_sock_close(struct sock *sk, int reason)
else else
result = L2CAP_CR_BAD_PSM; result = L2CAP_CR_BAD_PSM;
rsp.scid = cpu_to_le16(l2cap_pi(sk)->dcid); rsp.scid = cpu_to_le16(chan->dcid);
rsp.dcid = cpu_to_le16(l2cap_pi(sk)->scid); rsp.dcid = cpu_to_le16(chan->scid);
rsp.result = cpu_to_le16(result); rsp.result = cpu_to_le16(result);
rsp.status = cpu_to_le16(L2CAP_CS_NO_INFO); rsp.status = cpu_to_le16(L2CAP_CS_NO_INFO);
l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_RSP, l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_RSP,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment