diff options
Diffstat (limited to 'net/packet/af_packet.c')
-rw-r--r-- | net/packet/af_packet.c | 3 |
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 |