pppoe: add extra padding for the header (useful for drivers that need headroom)
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 29 Jun 2009 21:54:11 +0000 (21:54 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 29 Jun 2009 21:54:11 +0000 (21:54 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@16628 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/generic-2.6/patches-2.6.28/250-pppoe_header_pad.patch [new file with mode: 0644]
target/linux/generic-2.6/patches-2.6.29/250-pppoe_header_pad.patch [new file with mode: 0644]
target/linux/generic-2.6/patches-2.6.30/250-pppoe_header_pad.patch [new file with mode: 0644]

diff --git a/target/linux/generic-2.6/patches-2.6.28/250-pppoe_header_pad.patch b/target/linux/generic-2.6/patches-2.6.28/250-pppoe_header_pad.patch
new file mode 100644 (file)
index 0000000..87e5099
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/drivers/net/pppoe.c
++++ b/drivers/net/pppoe.c
+@@ -812,7 +812,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;
+@@ -820,7 +820,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;
diff --git a/target/linux/generic-2.6/patches-2.6.29/250-pppoe_header_pad.patch b/target/linux/generic-2.6/patches-2.6.29/250-pppoe_header_pad.patch
new file mode 100644 (file)
index 0000000..042546f
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/drivers/net/pppoe.c
++++ b/drivers/net/pppoe.c
+@@ -863,7 +863,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;
+@@ -871,7 +871,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;
diff --git a/target/linux/generic-2.6/patches-2.6.30/250-pppoe_header_pad.patch b/target/linux/generic-2.6/patches-2.6.30/250-pppoe_header_pad.patch
new file mode 100644 (file)
index 0000000..042546f
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/drivers/net/pppoe.c
++++ b/drivers/net/pppoe.c
+@@ -863,7 +863,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;
+@@ -871,7 +871,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;