diff options
author | Gustavo F. Padovan <padovan@profusion.mobi> | 2011-03-25 19:15:28 -0400 |
---|---|---|
committer | Gustavo F. Padovan <padovan@profusion.mobi> | 2011-04-07 17:06:27 -0400 |
commit | 2c03a7a49e0831646bd35d0877ec7d051d8f174b (patch) | |
tree | 30423f04924bf1e3ce5e0f34d5c5afb84a73a696 /net/bluetooth | |
parent | 6f61fd475907bf0a1470cb969ee993a31d305513 (diff) |
Bluetooth: Move remote info to struct l2cap_chan
As part of the moving channel stuff to l2cap_chan.
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Diffstat (limited to 'net/bluetooth')
-rw-r--r-- | net/bluetooth/l2cap_core.c | 32 | ||||
-rw-r--r-- | net/bluetooth/l2cap_sock.c | 4 |
2 files changed, 18 insertions, 18 deletions
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c index 8ccfcdf3e08..2176a003087 100644 --- a/net/bluetooth/l2cap_core.c +++ b/net/bluetooth/l2cap_core.c | |||
@@ -956,7 +956,7 @@ static void l2cap_monitor_timeout(unsigned long arg) | |||
956 | BT_DBG("chan %p", chan); | 956 | BT_DBG("chan %p", chan); |
957 | 957 | ||
958 | bh_lock_sock(sk); | 958 | bh_lock_sock(sk); |
959 | if (chan->retry_count >= l2cap_pi(sk)->remote_max_tx) { | 959 | if (chan->retry_count >= chan->remote_max_tx) { |
960 | l2cap_send_disconn_req(l2cap_pi(sk)->conn, sk, ECONNABORTED); | 960 | l2cap_send_disconn_req(l2cap_pi(sk)->conn, sk, ECONNABORTED); |
961 | bh_unlock_sock(sk); | 961 | bh_unlock_sock(sk); |
962 | return; | 962 | return; |
@@ -1065,8 +1065,8 @@ static void l2cap_retransmit_one_frame(struct l2cap_chan *chan, u8 tx_seq) | |||
1065 | 1065 | ||
1066 | } while ((skb = skb_queue_next(TX_QUEUE(sk), skb))); | 1066 | } while ((skb = skb_queue_next(TX_QUEUE(sk), skb))); |
1067 | 1067 | ||
1068 | if (pi->remote_max_tx && | 1068 | if (chan->remote_max_tx && |
1069 | bt_cb(skb)->retries == pi->remote_max_tx) { | 1069 | bt_cb(skb)->retries == chan->remote_max_tx) { |
1070 | l2cap_send_disconn_req(pi->conn, sk, ECONNABORTED); | 1070 | l2cap_send_disconn_req(pi->conn, sk, ECONNABORTED); |
1071 | return; | 1071 | return; |
1072 | } | 1072 | } |
@@ -1106,8 +1106,8 @@ int l2cap_ertm_send(struct l2cap_chan *chan) | |||
1106 | 1106 | ||
1107 | while ((skb = sk->sk_send_head) && (!l2cap_tx_window_full(chan))) { | 1107 | while ((skb = sk->sk_send_head) && (!l2cap_tx_window_full(chan))) { |
1108 | 1108 | ||
1109 | if (pi->remote_max_tx && | 1109 | if (chan->remote_max_tx && |
1110 | bt_cb(skb)->retries == pi->remote_max_tx) { | 1110 | bt_cb(skb)->retries == chan->remote_max_tx) { |
1111 | l2cap_send_disconn_req(pi->conn, sk, ECONNABORTED); | 1111 | l2cap_send_disconn_req(pi->conn, sk, ECONNABORTED); |
1112 | break; | 1112 | break; |
1113 | } | 1113 | } |
@@ -1337,9 +1337,9 @@ struct sk_buff *l2cap_create_iframe_pdu(struct sock *sk, struct msghdr *msg, siz | |||
1337 | return skb; | 1337 | return skb; |
1338 | } | 1338 | } |
1339 | 1339 | ||
1340 | int l2cap_sar_segment_sdu(struct sock *sk, struct msghdr *msg, size_t len) | 1340 | int l2cap_sar_segment_sdu(struct l2cap_chan *chan, struct msghdr *msg, size_t len) |
1341 | { | 1341 | { |
1342 | struct l2cap_pinfo *pi = l2cap_pi(sk); | 1342 | struct sock *sk = chan->sk; |
1343 | struct sk_buff *skb; | 1343 | struct sk_buff *skb; |
1344 | struct sk_buff_head sar_queue; | 1344 | struct sk_buff_head sar_queue; |
1345 | u16 control; | 1345 | u16 control; |
@@ -1347,20 +1347,20 @@ int l2cap_sar_segment_sdu(struct sock *sk, struct msghdr *msg, size_t len) | |||
1347 | 1347 | ||
1348 | skb_queue_head_init(&sar_queue); | 1348 | skb_queue_head_init(&sar_queue); |
1349 | control = L2CAP_SDU_START; | 1349 | control = L2CAP_SDU_START; |
1350 | skb = l2cap_create_iframe_pdu(sk, msg, pi->remote_mps, control, len); | 1350 | skb = l2cap_create_iframe_pdu(sk, msg, chan->remote_mps, control, len); |
1351 | if (IS_ERR(skb)) | 1351 | if (IS_ERR(skb)) |
1352 | return PTR_ERR(skb); | 1352 | return PTR_ERR(skb); |
1353 | 1353 | ||
1354 | __skb_queue_tail(&sar_queue, skb); | 1354 | __skb_queue_tail(&sar_queue, skb); |
1355 | len -= pi->remote_mps; | 1355 | len -= chan->remote_mps; |
1356 | size += pi->remote_mps; | 1356 | size += chan->remote_mps; |
1357 | 1357 | ||
1358 | while (len > 0) { | 1358 | while (len > 0) { |
1359 | size_t buflen; | 1359 | size_t buflen; |
1360 | 1360 | ||
1361 | if (len > pi->remote_mps) { | 1361 | if (len > chan->remote_mps) { |
1362 | control = L2CAP_SDU_CONTINUE; | 1362 | control = L2CAP_SDU_CONTINUE; |
1363 | buflen = pi->remote_mps; | 1363 | buflen = chan->remote_mps; |
1364 | } else { | 1364 | } else { |
1365 | control = L2CAP_SDU_END; | 1365 | control = L2CAP_SDU_END; |
1366 | buflen = len; | 1366 | buflen = len; |
@@ -1810,13 +1810,13 @@ done: | |||
1810 | break; | 1810 | break; |
1811 | 1811 | ||
1812 | case L2CAP_MODE_ERTM: | 1812 | case L2CAP_MODE_ERTM: |
1813 | pi->remote_tx_win = rfc.txwin_size; | 1813 | chan->remote_tx_win = rfc.txwin_size; |
1814 | pi->remote_max_tx = rfc.max_transmit; | 1814 | chan->remote_max_tx = rfc.max_transmit; |
1815 | 1815 | ||
1816 | if (le16_to_cpu(rfc.max_pdu_size) > pi->conn->mtu - 10) | 1816 | if (le16_to_cpu(rfc.max_pdu_size) > pi->conn->mtu - 10) |
1817 | rfc.max_pdu_size = cpu_to_le16(pi->conn->mtu - 10); | 1817 | rfc.max_pdu_size = cpu_to_le16(pi->conn->mtu - 10); |
1818 | 1818 | ||
1819 | pi->remote_mps = le16_to_cpu(rfc.max_pdu_size); | 1819 | chan->remote_mps = le16_to_cpu(rfc.max_pdu_size); |
1820 | 1820 | ||
1821 | rfc.retrans_timeout = | 1821 | rfc.retrans_timeout = |
1822 | le16_to_cpu(L2CAP_DEFAULT_RETRANS_TO); | 1822 | le16_to_cpu(L2CAP_DEFAULT_RETRANS_TO); |
@@ -1834,7 +1834,7 @@ done: | |||
1834 | if (le16_to_cpu(rfc.max_pdu_size) > pi->conn->mtu - 10) | 1834 | if (le16_to_cpu(rfc.max_pdu_size) > pi->conn->mtu - 10) |
1835 | rfc.max_pdu_size = cpu_to_le16(pi->conn->mtu - 10); | 1835 | rfc.max_pdu_size = cpu_to_le16(pi->conn->mtu - 10); |
1836 | 1836 | ||
1837 | pi->remote_mps = le16_to_cpu(rfc.max_pdu_size); | 1837 | chan->remote_mps = le16_to_cpu(rfc.max_pdu_size); |
1838 | 1838 | ||
1839 | pi->conf_state |= L2CAP_CONF_MODE_DONE; | 1839 | pi->conf_state |= L2CAP_CONF_MODE_DONE; |
1840 | 1840 | ||
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c index 19574e43226..f90ca2586ea 100644 --- a/net/bluetooth/l2cap_sock.c +++ b/net/bluetooth/l2cap_sock.c | |||
@@ -757,7 +757,7 @@ static int l2cap_sock_sendmsg(struct kiocb *iocb, struct socket *sock, struct ms | |||
757 | case L2CAP_MODE_ERTM: | 757 | case L2CAP_MODE_ERTM: |
758 | case L2CAP_MODE_STREAMING: | 758 | case L2CAP_MODE_STREAMING: |
759 | /* Entire SDU fits into one PDU */ | 759 | /* Entire SDU fits into one PDU */ |
760 | if (len <= pi->remote_mps) { | 760 | if (len <= pi->chan->remote_mps) { |
761 | control = L2CAP_SDU_UNSEGMENTED; | 761 | control = L2CAP_SDU_UNSEGMENTED; |
762 | skb = l2cap_create_iframe_pdu(sk, msg, len, control, 0); | 762 | skb = l2cap_create_iframe_pdu(sk, msg, len, control, 0); |
763 | if (IS_ERR(skb)) { | 763 | if (IS_ERR(skb)) { |
@@ -771,7 +771,7 @@ static int l2cap_sock_sendmsg(struct kiocb *iocb, struct socket *sock, struct ms | |||
771 | 771 | ||
772 | } else { | 772 | } else { |
773 | /* Segment SDU into multiples PDUs */ | 773 | /* Segment SDU into multiples PDUs */ |
774 | err = l2cap_sar_segment_sdu(sk, msg, len); | 774 | err = l2cap_sar_segment_sdu(pi->chan, msg, len); |
775 | if (err < 0) | 775 | if (err < 0) |
776 | goto done; | 776 | goto done; |
777 | } | 777 | } |