summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2009-06-29 21:54:11 +0000
committerFelix Fietkau <nbd@openwrt.org>2009-06-29 21:54:11 +0000
commit6517a757ec711fc3354b857e273e2621042f3c7a (patch)
treef968b05830fba7e2df33c544babecd8bd7dfba23
parent3b1c6c03791046331227baae4c10854cb2effbac (diff)
downloadmaster-31e0f0ae-6517a757ec711fc3354b857e273e2621042f3c7a.tar.gz
master-31e0f0ae-6517a757ec711fc3354b857e273e2621042f3c7a.tar.bz2
master-31e0f0ae-6517a757ec711fc3354b857e273e2621042f3c7a.zip
pppoe: add extra padding for the header (useful for drivers that need headroom)
SVN-Revision: 16628
-rw-r--r--target/linux/generic-2.6/patches-2.6.28/250-pppoe_header_pad.patch20
-rw-r--r--target/linux/generic-2.6/patches-2.6.29/250-pppoe_header_pad.patch20
-rw-r--r--target/linux/generic-2.6/patches-2.6.30/250-pppoe_header_pad.patch20
3 files changed, 60 insertions, 0 deletions
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
index 0000000000..87e5099927
--- /dev/null
+++ b/target/linux/generic-2.6/patches-2.6.28/250-pppoe_header_pad.patch
@@ -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
index 0000000000..042546f317
--- /dev/null
+++ b/target/linux/generic-2.6/patches-2.6.29/250-pppoe_header_pad.patch
@@ -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
index 0000000000..042546f317
--- /dev/null
+++ b/target/linux/generic-2.6/patches-2.6.30/250-pppoe_header_pad.patch
@@ -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;