aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth/l2cap_core.c
diff options
context:
space:
mode:
authorGustavo F. Padovan <padovan@profusion.mobi>2011-03-25 12:59:37 -0400
committerGustavo F. Padovan <padovan@profusion.mobi>2011-04-07 17:06:26 -0400
commitfc7f8a7ed4543853a99852ca405ea71fabe78946 (patch)
treeba641dfeaca9eda1b2907f7c9c1d5af8eff34cd2 /net/bluetooth/l2cap_core.c
parent820ffdb3d25f74fbd553453f461709d52dfa72a2 (diff)
Bluetooth: Move ident to struct l2cap_chan
ident is chan property, no need to reside on socket. Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Diffstat (limited to 'net/bluetooth/l2cap_core.c')
-rw-r--r--net/bluetooth/l2cap_core.c38
1 files changed, 19 insertions, 19 deletions
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index b0aaaa9cf00e..6020e1e2f500 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -118,8 +118,7 @@ static struct l2cap_chan *__l2cap_get_chan_by_ident(struct l2cap_conn *conn, u8
118 struct l2cap_chan *c; 118 struct l2cap_chan *c;
119 119
120 list_for_each_entry(c, &conn->chan_l, list) { 120 list_for_each_entry(c, &conn->chan_l, list) {
121 struct sock *s = c->sk; 121 if (c->ident == ident)
122 if (l2cap_pi(s)->ident == ident)
123 return c; 122 return c;
124 } 123 }
125 return NULL; 124 return NULL;
@@ -410,8 +409,9 @@ static inline int __l2cap_no_conn_pending(struct sock *sk)
410 return !(l2cap_pi(sk)->conf_state & L2CAP_CONF_CONNECT_PEND); 409 return !(l2cap_pi(sk)->conf_state & L2CAP_CONF_CONNECT_PEND);
411} 410}
412 411
413static void l2cap_do_start(struct sock *sk) 412static void l2cap_do_start(struct l2cap_chan *chan)
414{ 413{
414 struct sock *sk = chan->sk;
415 struct l2cap_conn *conn = l2cap_pi(sk)->conn; 415 struct l2cap_conn *conn = l2cap_pi(sk)->conn;
416 416
417 if (conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_SENT) { 417 if (conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_SENT) {
@@ -423,11 +423,11 @@ static void l2cap_do_start(struct sock *sk)
423 req.scid = cpu_to_le16(l2cap_pi(sk)->scid); 423 req.scid = cpu_to_le16(l2cap_pi(sk)->scid);
424 req.psm = l2cap_pi(sk)->psm; 424 req.psm = l2cap_pi(sk)->psm;
425 425
426 l2cap_pi(sk)->ident = l2cap_get_ident(conn); 426 chan->ident = l2cap_get_ident(conn);
427 l2cap_pi(sk)->conf_state |= L2CAP_CONF_CONNECT_PEND; 427 l2cap_pi(sk)->conf_state |= L2CAP_CONF_CONNECT_PEND;
428 428
429 l2cap_send_cmd(conn, l2cap_pi(sk)->ident, 429 l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_REQ,
430 L2CAP_CONN_REQ, sizeof(req), &req); 430 sizeof(req), &req);
431 } 431 }
432 } else { 432 } else {
433 struct l2cap_info_req req; 433 struct l2cap_info_req req;
@@ -529,11 +529,11 @@ static void l2cap_conn_start(struct l2cap_conn *conn)
529 req.scid = cpu_to_le16(l2cap_pi(sk)->scid); 529 req.scid = cpu_to_le16(l2cap_pi(sk)->scid);
530 req.psm = l2cap_pi(sk)->psm; 530 req.psm = l2cap_pi(sk)->psm;
531 531
532 l2cap_pi(sk)->ident = l2cap_get_ident(conn); 532 chan->ident = l2cap_get_ident(conn);
533 l2cap_pi(sk)->conf_state |= L2CAP_CONF_CONNECT_PEND; 533 l2cap_pi(sk)->conf_state |= L2CAP_CONF_CONNECT_PEND;
534 534
535 l2cap_send_cmd(conn, l2cap_pi(sk)->ident, 535 l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_REQ,
536 L2CAP_CONN_REQ, sizeof(req), &req); 536 sizeof(req), &req);
537 537
538 } else if (sk->sk_state == BT_CONNECT2) { 538 } else if (sk->sk_state == BT_CONNECT2) {
539 struct l2cap_conn_rsp rsp; 539 struct l2cap_conn_rsp rsp;
@@ -558,8 +558,8 @@ static void l2cap_conn_start(struct l2cap_conn *conn)
558 rsp.status = cpu_to_le16(L2CAP_CS_AUTHEN_PEND); 558 rsp.status = cpu_to_le16(L2CAP_CS_AUTHEN_PEND);
559 } 559 }
560 560
561 l2cap_send_cmd(conn, l2cap_pi(sk)->ident, 561 l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_RSP,
562 L2CAP_CONN_RSP, sizeof(rsp), &rsp); 562 sizeof(rsp), &rsp);
563 563
564 if (l2cap_pi(sk)->conf_state & L2CAP_CONF_REQ_SENT || 564 if (l2cap_pi(sk)->conf_state & L2CAP_CONF_REQ_SENT ||
565 rsp.result != L2CAP_CR_SUCCESS) { 565 rsp.result != L2CAP_CR_SUCCESS) {
@@ -694,7 +694,7 @@ static void l2cap_conn_ready(struct l2cap_conn *conn)
694 sk->sk_state = BT_CONNECTED; 694 sk->sk_state = BT_CONNECTED;
695 sk->sk_state_change(sk); 695 sk->sk_state_change(sk);
696 } else if (sk->sk_state == BT_CONNECT) 696 } else if (sk->sk_state == BT_CONNECT)
697 l2cap_do_start(sk); 697 l2cap_do_start(chan);
698 698
699 bh_unlock_sock(sk); 699 bh_unlock_sock(sk);
700 } 700 }
@@ -904,7 +904,7 @@ int l2cap_do_connect(struct sock *sk)
904 if (l2cap_check_security(sk)) 904 if (l2cap_check_security(sk))
905 sk->sk_state = BT_CONNECTED; 905 sk->sk_state = BT_CONNECTED;
906 } else 906 } else
907 l2cap_do_start(sk); 907 l2cap_do_start(chan);
908 } 908 }
909 909
910 err = 0; 910 err = 0;
@@ -2064,7 +2064,7 @@ static inline int l2cap_connect_req(struct l2cap_conn *conn, struct l2cap_cmd_hd
2064 2064
2065 l2cap_sock_set_timer(sk, sk->sk_sndtimeo); 2065 l2cap_sock_set_timer(sk, sk->sk_sndtimeo);
2066 2066
2067 l2cap_pi(sk)->ident = cmd->ident; 2067 chan->ident = cmd->ident;
2068 2068
2069 if (conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_DONE) { 2069 if (conn->info_state & L2CAP_INFO_FEAT_MASK_REQ_DONE) {
2070 if (l2cap_check_security(sk)) { 2070 if (l2cap_check_security(sk)) {
@@ -2157,7 +2157,7 @@ static inline int l2cap_connect_rsp(struct l2cap_conn *conn, struct l2cap_cmd_hd
2157 switch (result) { 2157 switch (result) {
2158 case L2CAP_CR_SUCCESS: 2158 case L2CAP_CR_SUCCESS:
2159 sk->sk_state = BT_CONFIG; 2159 sk->sk_state = BT_CONFIG;
2160 l2cap_pi(sk)->ident = 0; 2160 chan->ident = 0;
2161 l2cap_pi(sk)->dcid = dcid; 2161 l2cap_pi(sk)->dcid = dcid;
2162 l2cap_pi(sk)->conf_state &= ~L2CAP_CONF_CONNECT_PEND; 2162 l2cap_pi(sk)->conf_state &= ~L2CAP_CONF_CONNECT_PEND;
2163 2163
@@ -3862,10 +3862,10 @@ static int l2cap_security_cfm(struct hci_conn *hcon, u8 status, u8 encrypt)
3862 req.scid = cpu_to_le16(l2cap_pi(sk)->scid); 3862 req.scid = cpu_to_le16(l2cap_pi(sk)->scid);
3863 req.psm = l2cap_pi(sk)->psm; 3863 req.psm = l2cap_pi(sk)->psm;
3864 3864
3865 l2cap_pi(sk)->ident = l2cap_get_ident(conn); 3865 chan->ident = l2cap_get_ident(conn);
3866 l2cap_pi(sk)->conf_state |= L2CAP_CONF_CONNECT_PEND; 3866 l2cap_pi(sk)->conf_state |= L2CAP_CONF_CONNECT_PEND;
3867 3867
3868 l2cap_send_cmd(conn, l2cap_pi(sk)->ident, 3868 l2cap_send_cmd(conn, chan->ident,
3869 L2CAP_CONN_REQ, sizeof(req), &req); 3869 L2CAP_CONN_REQ, sizeof(req), &req);
3870 } else { 3870 } else {
3871 l2cap_sock_clear_timer(sk); 3871 l2cap_sock_clear_timer(sk);
@@ -3888,8 +3888,8 @@ static int l2cap_security_cfm(struct hci_conn *hcon, u8 status, u8 encrypt)
3888 rsp.dcid = cpu_to_le16(l2cap_pi(sk)->scid); 3888 rsp.dcid = cpu_to_le16(l2cap_pi(sk)->scid);
3889 rsp.result = cpu_to_le16(result); 3889 rsp.result = cpu_to_le16(result);
3890 rsp.status = cpu_to_le16(L2CAP_CS_NO_INFO); 3890 rsp.status = cpu_to_le16(L2CAP_CS_NO_INFO);
3891 l2cap_send_cmd(conn, l2cap_pi(sk)->ident, 3891 l2cap_send_cmd(conn, chan->ident, L2CAP_CONN_RSP,
3892 L2CAP_CONN_RSP, sizeof(rsp), &rsp); 3892 sizeof(rsp), &rsp);
3893 } 3893 }
3894 3894
3895 bh_unlock_sock(sk); 3895 bh_unlock_sock(sk);