summaryrefslogtreecommitdiffstats
path: root/net/packet
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2011-11-18 03:20:05 +0100
committerDavid S. Miller <davem@davemloft.net>2011-11-18 20:37:10 +0100
commit4ce4091256d61f8e9c7296f6643c8bd5bb2a00e5 (patch)
treeff41287641f6320a993d67afa6c41bff4cfdbc39 /net/packet
parentnet: Remove LL_ALLOCATED_SPACE (diff)
downloadlinux-4ce4091256d61f8e9c7296f6643c8bd5bb2a00e5.tar.xz
linux-4ce4091256d61f8e9c7296f6643c8bd5bb2a00e5.zip
packet: Add needed_tailroom to packet_sendmsg_spkt
packet: Add needed_tailroom to packet_sendmsg_spkt While auditing LL_ALLOCATED_SPACE I noticed that packet_sendmsg_spkt did not include needed_tailroom when allocating an skb. This isn't a fatal error as we should always tolerate inadequate tail room but it isn't optimal. This patch fixes that. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/packet')
-rw-r--r--net/packet/af_packet.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index 71c1a7521d32..0da505c9ac23 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -1499,10 +1499,11 @@ retry:
if (!skb) {
size_t reserved = LL_RESERVED_SPACE(dev);
+ int tlen = dev->needed_tailroom;
unsigned int hhlen = dev->header_ops ? dev->hard_header_len : 0;
rcu_read_unlock();
- skb = sock_wmalloc(sk, len + reserved, 0, GFP_KERNEL);
+ skb = sock_wmalloc(sk, len + reserved + tlen, 0, GFP_KERNEL);
if (skb == NULL)
return -ENOBUFS;
/* FIXME: Save some space for broken drivers that write a hard