aboutsummaryrefslogtreecommitdiffstats
path: root/net/packet/af_packet.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/packet/af_packet.c')
-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:
1499 1499
1500 if (!skb) { 1500 if (!skb) {
1501 size_t reserved = LL_RESERVED_SPACE(dev); 1501 size_t reserved = LL_RESERVED_SPACE(dev);
1502 int tlen = dev->needed_tailroom;
1502 unsigned int hhlen = dev->header_ops ? dev->hard_header_len : 0; 1503 unsigned int hhlen = dev->header_ops ? dev->hard_header_len : 0;
1503 1504
1504 rcu_read_unlock(); 1505 rcu_read_unlock();
1505 skb = sock_wmalloc(sk, len + reserved, 0, GFP_KERNEL); 1506 skb = sock_wmalloc(sk, len + reserved + tlen, 0, GFP_KERNEL);
1506 if (skb == NULL) 1507 if (skb == NULL)
1507 return -ENOBUFS; 1508 return -ENOBUFS;
1508 /* FIXME: Save some space for broken drivers that write a hard 1509 /* FIXME: Save some space for broken drivers that write a hard