aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth
diff options
context:
space:
mode:
Diffstat (limited to 'net/bluetooth')
-rw-r--r--net/bluetooth/l2cap.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
index 4415eb48c6ae..c2fb26d9286c 100644
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
@@ -1430,6 +1430,8 @@ static void l2cap_retransmit_one_frame(struct sock *sk, u8 tx_seq)
1430 tx_skb = skb_clone(skb, GFP_ATOMIC); 1430 tx_skb = skb_clone(skb, GFP_ATOMIC);
1431 bt_cb(skb)->retries++; 1431 bt_cb(skb)->retries++;
1432 control = get_unaligned_le16(tx_skb->data + L2CAP_HDR_SIZE); 1432 control = get_unaligned_le16(tx_skb->data + L2CAP_HDR_SIZE);
1433 control &= L2CAP_CTRL_SAR;
1434
1433 control |= (pi->buffer_seq << L2CAP_CTRL_REQSEQ_SHIFT) 1435 control |= (pi->buffer_seq << L2CAP_CTRL_REQSEQ_SHIFT)
1434 | (tx_seq << L2CAP_CTRL_TXSEQ_SHIFT); 1436 | (tx_seq << L2CAP_CTRL_TXSEQ_SHIFT);
1435 put_unaligned_le16(control, tx_skb->data + L2CAP_HDR_SIZE); 1437 put_unaligned_le16(control, tx_skb->data + L2CAP_HDR_SIZE);
@@ -1465,6 +1467,8 @@ static int l2cap_ertm_send(struct sock *sk)
1465 bt_cb(skb)->retries++; 1467 bt_cb(skb)->retries++;
1466 1468
1467 control = get_unaligned_le16(tx_skb->data + L2CAP_HDR_SIZE); 1469 control = get_unaligned_le16(tx_skb->data + L2CAP_HDR_SIZE);
1470 control &= L2CAP_CTRL_SAR;
1471
1468 if (pi->conn_state & L2CAP_CONN_SEND_FBIT) { 1472 if (pi->conn_state & L2CAP_CONN_SEND_FBIT) {
1469 control |= L2CAP_CTRL_FINAL; 1473 control |= L2CAP_CTRL_FINAL;
1470 pi->conn_state &= ~L2CAP_CONN_SEND_FBIT; 1474 pi->conn_state &= ~L2CAP_CONN_SEND_FBIT;