summaryrefslogtreecommitdiff
path: root/target/linux/generic/patches-2.6.38/650-pppoe_header_pad.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/patches-2.6.38/650-pppoe_header_pad.patch')
-rw-r--r--target/linux/generic/patches-2.6.38/650-pppoe_header_pad.patch20
1 files changed, 20 insertions, 0 deletions
diff --git a/target/linux/generic/patches-2.6.38/650-pppoe_header_pad.patch b/target/linux/generic/patches-2.6.38/650-pppoe_header_pad.patch
new file mode 100644
index 0000000000..4875d5f23f
--- /dev/null
+++ b/target/linux/generic/patches-2.6.38/650-pppoe_header_pad.patch
@@ -0,0 +1,20 @@
+--- a/drivers/net/pppoe.c
++++ b/drivers/net/pppoe.c
+@@ -855,7 +855,7 @@ static int pppoe_sendmsg(struct kiocb *i
+ goto end;
+
+
+- skb = sock_wmalloc(sk, total_len + dev->hard_header_len + 32,
++ skb = sock_wmalloc(sk, total_len + dev->hard_header_len + 32 + NET_SKB_PAD,
+ 0, GFP_KERNEL);
+ if (!skb) {
+ error = -ENOMEM;
+@@ -863,7 +863,7 @@ static int pppoe_sendmsg(struct kiocb *i
+ }
+
+ /* Reserve space for headers. */
+- skb_reserve(skb, dev->hard_header_len);
++ skb_reserve(skb, dev->hard_header_len + NET_SKB_PAD);
+ skb_reset_network_header(skb);
+
+ skb->dev = dev;