From: Mat Martineau <mathewm@codeaurora.org>
To: linux-bluetooth@vger.kernel.org
Cc: marcel@holtmann.org, gustavo@padovan.org,
rshaffer@codeaurora.org, linux-arm-msm@vger.kernel.org,
Mat Martineau <mathewm@codeaurora.org>
Subject: [RFC 2/7] Bluetooth: Use enhanced L2CAP header structure and symbolic values.
Date: Tue, 10 Aug 2010 12:14:59 -0700 [thread overview]
Message-ID: <1281467704-5378-3-git-send-email-mathewm@codeaurora.org> (raw)
In-Reply-To: <1281467704-5378-1-git-send-email-mathewm@codeaurora.org>
Signed-off-by: Mat Martineau <mathewm@codeaurora.org>
---
net/bluetooth/l2cap.c | 23 +++++++++++++----------
1 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
index 5e78c18..aa69c84 100644
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
@@ -1753,33 +1753,36 @@ static struct sk_buff *l2cap_create_iframe_pdu(struct sock *sk, struct msghdr *m
{
struct l2cap_conn *conn = l2cap_pi(sk)->conn;
struct sk_buff *skb;
- int err, count, hlen = L2CAP_HDR_SIZE + 2;
- struct l2cap_hdr *lh;
+ int err, count, hlen = L2CAP_ENHANCED_HDR_SIZE;
+ struct l2cap_enhanced_hdr *lh;
- BT_DBG("sk %p len %d", sk, (int)len);
+ BT_DBG("sk %p, msg %p, len %d, control %x, sdulen %d",
+ sk, msg, (int)len, control, (int)sdulen);
if (!conn)
return ERR_PTR(-ENOTCONN);
if (sdulen)
- hlen += 2;
+ hlen += L2CAP_SDULEN_SIZE;
if (l2cap_pi(sk)->fcs == L2CAP_FCS_CRC16)
- hlen += 2;
+ hlen += L2CAP_FCS_SIZE;
count = min_t(unsigned int, (conn->mtu - hlen), len);
+
skb = bt_skb_send_alloc(sk, count + hlen,
msg->msg_flags & MSG_DONTWAIT, &err);
if (!skb)
- return ERR_PTR(-ENOMEM);
+ return ERR_PTR(err);
/* Create L2CAP header */
- lh = (struct l2cap_hdr *) skb_put(skb, L2CAP_HDR_SIZE);
+ lh = (struct l2cap_enhanced_hdr *) skb_put(skb,
+ L2CAP_ENHANCED_HDR_SIZE);
lh->cid = cpu_to_le16(l2cap_pi(sk)->dcid);
- lh->len = cpu_to_le16(len + (hlen - L2CAP_HDR_SIZE));
- put_unaligned_le16(control, skb_put(skb, 2));
+ lh->len = cpu_to_le16(len + hlen - L2CAP_HDR_SIZE);
+ lh->control = cpu_to_le16(control);
if (sdulen)
- put_unaligned_le16(sdulen, skb_put(skb, 2));
+ put_unaligned_le16(sdulen, skb_put(skb, L2CAP_SDULEN_SIZE));
err = l2cap_skbuff_fromiovec(sk, msg, len, count, skb);
if (unlikely(err < 0)) {
--
1.7.1
--
Mat Martineau
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum
next prev parent reply other threads:[~2010-08-10 19:15 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-10 19:14 [RFC 0/7] L2CAP fragmentation changes Mat Martineau
2010-08-10 19:14 ` [RFC 1/7] Bluetooth: Calculate L2CAP FCS on fragmented skbuffs Mat Martineau
2010-08-10 21:22 ` Marcel Holtmann
2010-08-10 21:57 ` Gustavo F. Padovan
2010-08-10 19:14 ` Mat Martineau [this message]
2010-08-10 21:39 ` [RFC 2/7] Bluetooth: Use enhanced L2CAP header structure and symbolic values Marcel Holtmann
2010-08-10 22:07 ` Gustavo F. Padovan
2010-08-11 2:24 ` Mat Martineau
2010-08-11 3:23 ` Gustavo F. Padovan
2010-08-10 19:15 ` [RFC 3/7] Bluetooth: Add FCS awareness to L2CAP HCI fragmentation Mat Martineau
2010-08-10 21:29 ` Marcel Holtmann
2010-08-11 3:35 ` Gustavo F. Padovan
2010-08-11 3:56 ` Gustavo F. Padovan
2010-08-10 19:15 ` [RFC 4/7] Bluetooth: Linearize received L2CAP skbuffs Mat Martineau
2010-08-10 21:38 ` Marcel Holtmann
2010-08-11 3:58 ` Gustavo F. Padovan
2010-08-10 19:15 ` [RFC 5/7] Bluetooth: Handle fragmented skbs in bt_sock_stream_recvmsg() Mat Martineau
2010-08-11 4:25 ` Gustavo F. Padovan
2010-08-10 19:15 ` [RFC 6/7] Bluetooth: Reassemble enhanced L2CAP PDUs using skb fragments Mat Martineau
2010-08-11 5:24 ` Gustavo F. Padovan
2010-08-10 19:15 ` [RFC 7/7] Bluetooth: Do not limit enhanced L2CAP max PDU size to HCI MTU Mat Martineau
2010-08-11 5:25 ` Gustavo F. Padovan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1281467704-5378-3-git-send-email-mathewm@codeaurora.org \
--to=mathewm@codeaurora.org \
--cc=gustavo@padovan.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=marcel@holtmann.org \
--cc=rshaffer@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).