diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c index aada12ea73ba6fdf16790b5cba21a63677a2ae06..00f9744436969214673ec9564df88e7c6045011f 100644 --- a/drivers/net/ppp/pppoe.c +++ b/drivers/net/ppp/pppoe.c @@ -910,16 +910,15 @@ static int pppoe_sendmsg(struct socket *sock, struct msghdr *m, if (total_len > (dev->mtu + dev->hard_header_len)) goto end; - hlen = LL_RESERVED_SPACE(dev); - skb = sock_wmalloc(sk, hlen + sizeof(*ph) + total_len + - dev->needed_tailroom, 0, GFP_KERNEL); + skb = sock_wmalloc(sk, total_len + dev->hard_header_len + 32 + NET_SKB_PAD, + 0, GFP_KERNEL); if (!skb) { error = -ENOMEM; goto end; } /* Reserve space for headers. */ - skb_reserve(skb, hlen); + skb_reserve(skb, dev->hard_header_len + NET_SKB_PAD); skb_reset_network_header(skb); skb->dev = dev;