aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMat Martineau <mathewm@codeaurora.org>2012-10-23 18:24:18 -0400
committerGustavo Padovan <gustavo.padovan@collabora.co.uk>2012-10-23 22:24:34 -0400
commitd5f8a75d88ecef3987158a94e8070bdfb46b09bd (patch)
treeba6948ebfb9aea7358bf437473c7377fd8eb4796
parent8eb200bd2f1c772dcb7f108f690ef03b054be04e (diff)
Bluetooth: Flag ACL frames as complete for AMP controllers
AMP controllers expect to transmit only "complete" ACL frames. These frames have both the "start" and "cont" bits set. AMP does not allow fragmented ACLs. Signed-off-by: Mat Martineau <mathewm@codeaurora.org> Acked-by: Marcel Holtmann <marcel@holtmann.org> Acked-by: Andrei Emeltchenko <andrei.emeltchenko@intel.com> Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
-rw-r--r--net/bluetooth/l2cap_core.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
index 898529d102f2..22f3768aa0be 100644
--- a/net/bluetooth/l2cap_core.c
+++ b/net/bluetooth/l2cap_core.c
@@ -763,6 +763,15 @@ static void l2cap_do_send(struct l2cap_chan *chan, struct sk_buff *skb)
763 BT_DBG("chan %p, skb %p len %d priority %u", chan, skb, skb->len, 763 BT_DBG("chan %p, skb %p len %d priority %u", chan, skb, skb->len,
764 skb->priority); 764 skb->priority);
765 765
766 if (chan->hs_hcon && !__chan_is_moving(chan)) {
767 if (chan->hs_hchan)
768 hci_send_acl(chan->hs_hchan, skb, ACL_COMPLETE);
769 else
770 kfree_skb(skb);
771
772 return;
773 }
774
766 if (!test_bit(FLAG_FLUSHABLE, &chan->flags) && 775 if (!test_bit(FLAG_FLUSHABLE, &chan->flags) &&
767 lmp_no_flush_capable(hcon->hdev)) 776 lmp_no_flush_capable(hcon->hdev))
768 flags = ACL_START_NO_FLUSH; 777 flags = ACL_START_NO_FLUSH;