From a95f34106f150deea277b50d8787a23b58a91ba0 Mon Sep 17 00:00:00 2001 From: nbd Date: Mon, 29 Jun 2009 21:54:11 +0000 Subject: [PATCH] pppoe: add extra padding for the header (useful for drivers that need headroom) git-svn-id: svn://svn.openwrt.org/openwrt/trunk@16628 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../patches-2.6.28/250-pppoe_header_pad.patch | 20 +++++++++++++++++++ .../patches-2.6.29/250-pppoe_header_pad.patch | 20 +++++++++++++++++++ .../patches-2.6.30/250-pppoe_header_pad.patch | 20 +++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 target/linux/generic-2.6/patches-2.6.28/250-pppoe_header_pad.patch create mode 100644 target/linux/generic-2.6/patches-2.6.29/250-pppoe_header_pad.patch create mode 100644 target/linux/generic-2.6/patches-2.6.30/250-pppoe_header_pad.patch 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 000000000..87e509992 --- /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 000000000..042546f31 --- /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 000000000..042546f31 --- /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; -- 2.20.1