diff options
author | Gustavo F. Padovan <padovan@profusion.mobi> | 2011-03-25 12:59:37 -0400 |
---|---|---|
committer | Gustavo F. Padovan <padovan@profusion.mobi> | 2011-04-07 17:06:26 -0400 |
commit | fc7f8a7ed4543853a99852ca405ea71fabe78946 (patch) | |
tree | ba641dfeaca9eda1b2907f7c9c1d5af8eff34cd2 /net/bluetooth/l2cap_core.c | |
parent | 820ffdb3d25f74fbd553453f461709d52dfa72a2 (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.c | 38 |
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 | ||
413 | static void l2cap_do_start(struct sock *sk) | 412 | static 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); |