diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2014-06-08 05:22:28 -0400 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2014-07-03 11:42:42 -0400 |
commit | d9fbd02be5c201c1659ee0d79c0820bb68d95c8c (patch) | |
tree | b2f7aa9fa77a90c45e5e5eeda0d47e16ef452c4c /net/bluetooth/l2cap_sock.c | |
parent | 0775899158d0e1436316f3bf451d78bf34b88d17 (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.c | 3 |
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 | ||
1294 | static struct sk_buff *l2cap_sock_alloc_skb_cb(struct l2cap_chan *chan, | 1294 | static 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) |