Commit 4ce40912 authored by Herbert Xu's avatar Herbert Xu Committed by David S. Miller

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: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 56c978f1
...@@ -1499,10 +1499,11 @@ static int packet_sendmsg_spkt(struct kiocb *iocb, struct socket *sock, ...@@ -1499,10 +1499,11 @@ static int packet_sendmsg_spkt(struct kiocb *iocb, struct socket *sock,
if (!skb) { if (!skb) {
size_t reserved = LL_RESERVED_SPACE(dev); size_t reserved = LL_RESERVED_SPACE(dev);
int tlen = dev->needed_tailroom;
unsigned int hhlen = dev->header_ops ? dev->hard_header_len : 0; unsigned int hhlen = dev->header_ops ? dev->hard_header_len : 0;
rcu_read_unlock(); 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) if (skb == NULL)
return -ENOBUFS; return -ENOBUFS;
/* FIXME: Save some space for broken drivers that write a hard /* FIXME: Save some space for broken drivers that write a hard
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment