aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth/hci_core.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/bluetooth/hci_core.c')
-rw-r--r--net/bluetooth/hci_core.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 9c4541bc488..9ba92adaa9a 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -1395,7 +1395,7 @@ void hci_send_acl(struct hci_conn *conn, struct sk_buff *skb, __u16 flags)
1395 1395
1396 skb->dev = (void *) hdev; 1396 skb->dev = (void *) hdev;
1397 bt_cb(skb)->pkt_type = HCI_ACLDATA_PKT; 1397 bt_cb(skb)->pkt_type = HCI_ACLDATA_PKT;
1398 hci_add_acl_hdr(skb, conn->handle, flags | ACL_START); 1398 hci_add_acl_hdr(skb, conn->handle, flags);
1399 1399
1400 list = skb_shinfo(skb)->frag_list; 1400 list = skb_shinfo(skb)->frag_list;
1401 if (!list) { 1401 if (!list) {
@@ -1413,12 +1413,15 @@ void hci_send_acl(struct hci_conn *conn, struct sk_buff *skb, __u16 flags)
1413 spin_lock_bh(&conn->data_q.lock); 1413 spin_lock_bh(&conn->data_q.lock);
1414 1414
1415 __skb_queue_tail(&conn->data_q, skb); 1415 __skb_queue_tail(&conn->data_q, skb);
1416
1417 flags &= ~ACL_START;
1418 flags |= ACL_CONT;
1416 do { 1419 do {
1417 skb = list; list = list->next; 1420 skb = list; list = list->next;
1418 1421
1419 skb->dev = (void *) hdev; 1422 skb->dev = (void *) hdev;
1420 bt_cb(skb)->pkt_type = HCI_ACLDATA_PKT; 1423 bt_cb(skb)->pkt_type = HCI_ACLDATA_PKT;
1421 hci_add_acl_hdr(skb, conn->handle, flags | ACL_CONT); 1424 hci_add_acl_hdr(skb, conn->handle, flags);
1422 1425
1423 BT_DBG("%s frag %p len %d", hdev->name, skb, skb->len); 1426 BT_DBG("%s frag %p len %d", hdev->name, skb, skb->len);
1424 1427