summaryrefslogtreecommitdiff
path: root/net/bluetooth
diff options
context:
space:
mode:
authorRuiyi Zhang <Ruiyi.zhang@atheros.com>2011-04-18 11:04:30 +0800
committerGustavo F. Padovan <padovan@profusion.mobi>2011-04-18 20:11:47 -0300
commita429b51930e64dd355840c37251a563000d7c10b (patch)
tree24e69908100bf6297cb5c5597f2d1dcd970bfe7f /net/bluetooth
parentf21ca5fff6e548833fa5ee8867239a8378623150 (diff)
downloadlinux-3.10-a429b51930e64dd355840c37251a563000d7c10b.tar.gz
linux-3.10-a429b51930e64dd355840c37251a563000d7c10b.tar.bz2
linux-3.10-a429b51930e64dd355840c37251a563000d7c10b.zip
Bluetooth: Only keeping SAR bits when retransmitting one frame.
When retrasmitting one frame, only SAR bits in control field should be kept. Signed-off-by: Ruiyi Zhang <Ruiyi.zhang@atheros.com> Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Diffstat (limited to 'net/bluetooth')
-rw-r--r--net/bluetooth/l2cap_core.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index ca27f3a4153..2c8dd4494c6 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -1051,6 +1051,7 @@ static void l2cap_retransmit_one_frame(struct sock *sk, u8 tx_seq)
tx_skb = skb_clone(skb, GFP_ATOMIC);
bt_cb(skb)->retries++;
control = get_unaligned_le16(tx_skb->data + L2CAP_HDR_SIZE);
+ control &= L2CAP_CTRL_SAR;
if (pi->conn_state & L2CAP_CONN_SEND_FBIT) {
control |= L2CAP_CTRL_FINAL;