aboutsummaryrefslogtreecommitdiffstats
path: root/net/bluetooth/l2cap_sock.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2014-06-08 05:22:28 -0400
committerMarcel Holtmann <marcel@holtmann.org>2014-07-03 11:42:42 -0400
commitd9fbd02be5c201c1659ee0d79c0820bb68d95c8c (patch)
treeb2f7aa9fa77a90c45e5e5eeda0d47e16ef452c4c /net/bluetooth/l2cap_sock.c
parent0775899158d0e1436316f3bf451d78bf34b88d17 (diff)
Bluetooth: Use explicit header and body length for L2CAP SKB allocation
When allocating the L2CAP SKB for transmission, provide the upper layers with a clear distinction on what is the header and what is the body portion of the SKB. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Diffstat (limited to 'net/bluetooth/l2cap_sock.c')
-rw-r--r--net/bluetooth/l2cap_sock.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
index d95964c9f91e..55215ebf6547 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
@@ -1292,6 +1292,7 @@ static void l2cap_sock_state_change_cb(struct l2cap_chan *chan, int state,
1292} 1292}
1293 1293
1294static struct sk_buff *l2cap_sock_alloc_skb_cb(struct l2cap_chan *chan, 1294static struct sk_buff *l2cap_sock_alloc_skb_cb(struct l2cap_chan *chan,
1295 unsigned long hdr_len,
1295 unsigned long len, int nb) 1296 unsigned long len, int nb)
1296{ 1297{
1297 struct sock *sk = chan->data; 1298 struct sock *sk = chan->data;
@@ -1299,7 +1300,7 @@ static struct sk_buff *l2cap_sock_alloc_skb_cb(struct l2cap_chan *chan,
1299 int err; 1300 int err;
1300 1301
1301 l2cap_chan_unlock(chan); 1302 l2cap_chan_unlock(chan);
1302 skb = bt_skb_send_alloc(sk, len, nb, &err); 1303 skb = bt_skb_send_alloc(sk, hdr_len + len, nb, &err);
1303 l2cap_chan_lock(chan); 1304 l2cap_chan_lock(chan);
1304 1305
1305 if (!skb) 1306 if (!skb)